import java.util.Scanner;public class Palindrome {
public static void main(String[] args) {
Scanner input= new Scanner(System.in);
System.out.println("请输入一字符串:");
String str= input.next();
StringBuffer strTest= new StringBuffer(str);
strTest.reverse();
System.out.println(strTest);
if(str.equals(strTest)){
System.out.println("该字符串是回文字符串");
}
else{
System.out.println("该字符串不是回文字符串");
}
}
}
如果我输入aaabbbaaa  那么str.equals(strTest)应该为true,且输出是回文字符串,但是输出结果却是  不是回文,求解~~

解决方案 »

  1.   

    因为你的两个比较中if(str.equals(strTest)){
    str和strTest一个是String一个是StringBuffer
    改成这样就行了:
    public class test {
    public static void main(String[] args){


    Scanner input= new Scanner(System.in);
    System.out.println("请输入一字符串:");
    String str= input.next();
    StringBuffer strTest= new StringBuffer(str);

    String st=strTest.reverse().toString();


    if(str.equals(st)){
    System.out.println("该字符串是回文字符串");
    }
    else{
    System.out.println("该字符串不是回文字符串");
    } }
    }
      

  2.   

    str是Stirng字符串,而strTest是StringBuffer对象,当然不能相等,
    这个if判断应该这样: if(str.equals(strTest.toString())){ .....}else{.....}
    这样既可。