我尝试在for循环中反转一个字符串,但它不起作用

时间:2016-11-25 14:14:58

标签: java string substring reverse

    int num = 621126;
    String secondHalfReverse = "";
    String stringNum = "" + num;
    String firstHalfProduct = stringNum.substring(0, 3);
    String secondHalfProduct = stringNum.substring(3,6);

    System.out.println("the first half is " + firstHalfProduct + " and the second half is: " + secondHalfProduct);

    System.out.println(stringNum);

    for(int i = 0; i < 3; i++)
    {
        int right = 1;
        int left = 0;

        String letter = secondHalfProduct.substring(left,right);


        System.out.println(letter);


        left++;
        right++;




    }

我收到的信件输出是: 1 1 1

而不是: 1 2 6

我只是不明白为什么信不会向上移动字符串并选择其他字母。

5 个答案:

答案 0 :(得分:1)

因为每次循环时,左右都会重新设置为1.将它们放在循环之外并且它应该可以正常工作

答案 1 :(得分:0)

您应该将int leftint right的声明移到for循环之上。

每次执行循环时都会重置它们的值。如果将它们移出循环,情况就不会如此,它们会按预期增加。

答案 2 :(得分:0)

只需像这样更改循环,否则rightleft变量将在每个循环中设置为10

int right = 1;
int left = 0;
for (int i = 0; i < 3; i++) {
    String letter = secondHalfProduct.substring(left, right);
    System.out.println(letter);
    left++;
    right++;
}

答案 3 :(得分:0)

    int right = 1;
    int left = 0;

在for循环中声明,因此每次迭代都会重置。在for循环之前声明它们

答案 4 :(得分:0)

如果您不想使用for循环,有一种更简单的方法:

StringBuffer a=new StringBuffer("java hungry");
System.out.println(a.reverse());