有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我试图在for循环中反转字符串,但它就是不起作用

    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++;




    }

我从letter得到的输出是: 1. 1. 一,

而不是: 1. 2. 六,

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


共 (5) 个答案

  1. # 1 楼答案

    只需像这样更改循环,否则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++;
    }
    
  2. # 2 楼答案

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

    每次执行循环时,它们的值都会重置。如果您将它们移出循环,则情况并非如此,它们将按预期的方式递增

  3. # 3 楼答案

    因为每次你循环,左和右都会回到1。把它们放在你的循环之外,它应该会起作用

  4. # 4 楼答案

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

    StringBuffer a=new StringBuffer("java hungry");
    System.out.println(a.reverse());
    
  5. # 5 楼答案

        int right = 1;
        int left = 0;
    

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