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) {
    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/

相关文章:

java - 如何在SQLite/Java/Android中正确处理此类错误?

java - Java 的Optional 上的get() 危险吗?

java - PowerMock模拟创建泛型类的新对象

java - android旋转屏幕导致文字颜色更改为默认

java - 是否热衷于使用mp3spi获得mp3文件的持续时间?

java - Sugar CRM - Java 客户端 - 登录

java - maven Jacoco : how to increase code coverage thresholds automatically

javascript - 在 GET 中从另一个 J 调用 JavaScript 方法

java - 如何使用 JSTL forEach 循环的索引变量来访问映射条目?

java - MapStruct继承,不止一个配置原型(prototype)是application