这个问题在这里已有答案:
我正在研究回文探测器。我已经设法在某些情况下使其工作。当我输入像“Abba”这样的单词时,它会作为回文返回。大!但如果我输入“猫”,它就不会做同样的事情。我不能为此使用循环。有任何想法吗?
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");
}
}
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);
}