Java中String的equals与contentEquals的区别

March 8, 2022

java语言中String对象有equals与contentEquals两个比较字符串是否相等的方法,它们有什么区别呢?

equals的方法是对2个String对象内容比较,否则返回false;

contentEquals比较类型为java.lang.CharSequence的对象内容是否相同。也就是说对象是String、 StringBuffer或StringBuilder ,只要字符串内容相同就返回true。

测试代码: String s1=”String”; String s2=new String(“String”); StringBuffer s3=new StringBuffer(“String”); StringBuilder s4=new StringBuilder(“String”); System.out.println(“s1==s2的结果是:” + (s1==s2)); System.out.println(“s1.equals(s2)的结果:” + s1.equals(s2)); System.out.println(“s1.equals(s3)的结果:” + s1.equals(s3)); System.out.println(“s1.contentEquals(s3)的结果:” + s1.contentEquals(s3)); System.out.println(“s3.contentEquals(s4)的结果:” + s3.equals(s4));

s1==s2的结果是:false s1.equals(s2)的结果:true s1.equals(s3)的结果:false s1.contentEquals(s3)的结果:true s3.contentEquals(s4)的结果:false

注意: StringBuffer和StringBuilder 没有contentEquals方法