gpt4 book ai didi

java - java中如何检查一个字符串是否是回文?

转载 作者:行者123 更新时间:2023-12-01 22:21:06 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来检查字符串是否是回文,到目前为止我知道我走在正确的道路上,但是当我输入代码时它会永远运行。我不知道问题是什么,希望帮助找出解决方案。在我的程序中,我希望用户在 Printpalindrome 方法中输入一个或多个单词,然后程序应该知道该字符串是否是回文。

这是我的代码:

      ...
Scanner console = new Scanner (System.in);
String str = console.next();
Printpalindrome(console, str);
}

public static void Printpalindrome(Scanner console, String str) {
Scanner in = new Scanner(System.in);
String original, reverse = "";



str = in.nextLine();

int length = str.length();

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

if (str.equals(reverse))
System.out.println("Entered string is a palindrome.");

}
}

最佳答案

因为这一行:

n = in.nextLine();

你的程序正在等待第二个输入,但在进入函数之前你已经得到了一个输入。

删除此行即可正常工作。

这是您的程序,已清理(并经过测试):

public static void main(String[] args){
Scanner console = new Scanner (System.in);
String n = console.next();
Printpalindrome(n);
}

public static void Printpalindrome(String n){
String reverse = "";
for ( int i = n.length() - 1; i >= 0; i-- ) {
reverse = reverse + n.charAt(i);
System.out.println("re:"+reverse);
}
if (n.equals(reverse))
System.out.println("Entered string is a palindrome.");
else
System.out.println("Entered string is NOT a palindrome.");
}

当然,这不是最好的算法,但您已经知道 SO 上有许多 QA 具有更快的解决方案(提示:不要构建字符串,只需比较字符)。

关于java - java中如何检查一个字符串是否是回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com