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
?