在我的代码中,我正在测试回文,但我的输入变量不会在每次迭代时重置。第一次测试效果很好,但是使用相同的输入,结果是错误的。
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 循环上方添加了其余代码
最佳答案
您应该在 for 循环之前编写 reverse = "";
来重置变量 reverse
:
reverse = "";
for (i = pal.length() - 1; i >= 0; --i) {
reverse += pal.charAt(i);
}
关于java - 每次迭代时输入变量不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428862/