您能帮我找到这段代码中的错误吗?当我用不是回文的字符串测试它时,我得到的消息是回文。
import java.util.*;
public class Main{
public static void main(String args[]){
String input = "";
System.out.println("Enter the string to verify palindrome");
Scanner scan = new Scanner(System.in);
input = scan.nextLine();
Main m = new Main();
if(m.palindrome(input))
System.out.println(" The string " + input + " is a palindrome ");
else System.out.println(" The string " + input + " is not a palindrome ");
}
private boolean palindrome(String input){
String reverse = input;
int j;
for(int i=0;i<=reverse.length()-1;i++){
for( j=reverse.length()-1;j>=0;){
if(reverse.charAt(i)== reverse.charAt(j)){
return true;
}
else{
return false;
}
}j--;
}
return false;
}
}
最佳答案
if(reverse.charAt(i)== reverse.charAt(j)){
return true;
}
如果第一个字符和最后一个字符相同,则返回true,而无需继续检查任何其他字符。
我会说更好的方法是继续逐步遍历单词,直到找到一个不匹配的字符或直到完成为止。如果找到不匹配的字符,则返回false。如果完成,则返回true。
关于java - 在Java中验证回文。您能帮我找出这段代码的问题吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19214088/