猿问

每次迭代都不会重置输入变量

在我的代码中,我正在测试回文,但我的输入变量不会在每次迭代时重置。测试第一次运行完美,但使用相同的输入,它出现错误。


Scanner input = new Scanner(System.in);

int i;

System.out.print("Enter a string: ");

String pal = input.nextLine();

String reverse = "";

boolean isFalse = false;


while (!isFalse) {

    if (pal.isEmpty()) {

        System.out.println("Empty line read - Goodbye!");

        isFalse = true;

    }

    if (pal.length() > 0) {

        for (i = pal.length() - 1; i >= 0; --i) {

            reverse = reverse + pal.charAt(i);

        }

        if (pal.equals(reverse)) {

            System.out.println(pal + " is a palidrome");

            System.out.println();

        } else {

            System.out.println(pal + " is not a palidrome");

            System.out.println();

        }

        System.out.print("Enter a string: ");

        pal = input.nextLine();

    }

}

pal 是输入变量。在调试时,我打印了pal的结果。1331 以回文形式出现,但当我重新进入 1331 时,程序输出了一条错误语句。有什么建议?编辑:我在while循环上方添加了其余代码


慕斯709654
浏览 177回答 1
1回答

浮云间

您应该reverse通过reverse = "";在 for 循环之前写入来重置变量:reverse = "";for (i = pal.length() - 1; i >= 0; --i) {    reverse += pal.charAt(i);}
随时随地看视频慕课网APP

相关分类

Java
我要回答