比较字符串是否相等
StringBuffer sb = new StringBuffer(String.valueOf(x));
if(sb.equals(sb.reverse()))
return true;
else
return false;
应该写成下面代码:
String reverseNumber = new StringBuilder(String.valueOf(x)).reverse().toString();
return reverseNumber.equals(String.valueOf(x));
==只能比较两个字符串的内存地址是否一样,不能比较字符串内容;
String的equals方法因为重写了Object的equals方法,所以可以比较字符串的内容,而StringBuffer因为没重写equals方法,直接继承了Object的equals方法,所以不行。
顺便提一句:String因为是final类型的,是不可变类,所以对于append等操作,是要重新new String的,而StringBuffer是可变类,不需要重新new StringBuffer,所以在字符串操作上性能非常好,而且好的不是一点点。