在我的代码中,我正在测试回文症,但是我的输入变量并未在每次迭代中重置。第一次测试可以完美运行,但是在输入相同的情况下,结果却是错误的。
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循环上方添加了其余代码
答案 0 :(得分:3)
您应该通过在for循环之前写入reverse
来重置变量reverse = "";
:
reverse = "";
for (i = pal.length() - 1; i >= 0; --i) {
reverse += pal.charAt(i);
}