Java 输入变量未在每次迭代中重置

Java 输入变量未在每次迭代中重置,java,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) {

在我的代码中,我正在测试回文,但我的输入变量并没有随着每次迭代而重置。测试在第一次时工作得很好,但在相同的输入下,结果是错误的

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

您应该通过写入
reverse=“”,重置变量
reverse
在for循环之前:

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

您应该通过写入
reverse=”“,重置变量
reverse
在for循环之前:

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

你发布的代码很难说,但看起来这可能是个问题:你应该提供一个-当前的代码缺少很多东西…你有没有仔细地调试过,无论是在纸上还是使用调试器?您是否检查了关于
pal
中具体包含的内容的假设,即
nextLine
调用的结果?不相关,但可能会将
isFalse
的名称更改为类似于
shouldContinue
,并在不应该的时候将其设置为
false
?您发布的代码很难说,但看起来这可能是个问题:您应该提供一个-当前代码缺少大量内容…您是否仔细调试过,是在纸上,还是用调试器?您是否检查了关于
pal
中具体包含的内容的假设,即
nextLine
调用的结果?不相关,但可能会将
isFalse
的名称更改为类似于
shouldContinue
,并在不应该时将其设置为
false