我正在研究回文检测器。在某些情况下,我已经设法使其正常工作。当我输入“ Abba”之类的单词时,它作为回文集返回。大!但是如果我输入“ cat”,它不会做同样的事情。我不能为此使用循环。有什么想法吗?
public class Palindrome {
public static void main(String[]args) {
Scanner in=new Scanner(System.in);
System.out.print("Enter word");
String start = in.nextLine();
String end=start;
boolean isPalindrome = (start == end);
if (isPalindrome) {
System.out.print("This is a palindrome");}
else
System.out.print("This is not a palindrome");
}
}
答案 0 :(得分:0)
start == end总是比较相同的字符串。如果输入为“ cat”,则检查“ cat” ==“ cat”是否为真。
如果不允许使用循环,请使用递归:
String input=in.nextLine();
isPalindrome(0,start.length()-1,input);
boolean isPalindrome(left,right,input){
if (left>=right){
// left==right for odd palindrome
// left>right for even palindrome
return true;
}
if (str.charAt(left)!=str.charAt(right)){
return false;
}
return isPalindrome(left+1,right-1,str);
}