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

时间:2018-09-20 15:48:34

标签: java

在我的代码中,我正在测试回文症,但是我的输入变量并未在每次迭代中重置。第一次测试可以完美运行,但是在输入相同的情况下,结果却是错误的。

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循环上方添加了其余代码

1 个答案:

答案 0 :(得分:3)

您应该通过在for循环之前写入reverse来重置变量reverse = "";

reverse = "";
for (i = pal.length() - 1; i >= 0; --i) {
    reverse += pal.charAt(i);
}