StringBuffer与String的equals()方法

比较字符串是否相等

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,所以在字符串操作上性能非常好,而且好的不是一点点。

猜你喜欢

转载自blog.csdn.net/sdfgtr/article/details/88136438