Java常用比较字符串的方法

在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法

  1. equals()
    equals() 方法将逐个地比较两个字符串的每个字符是否相同。

"abc".equals("abc")

  1. equalsIgnoreCase() 方法
    equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同, 但是忽略大小写

"Abc".equalsIgnoreCase("abc")
返回true

  1. compareTo() 方法
    compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值。

String str1 = "a";
String str2 = "A";
 
System.out.println(str1.compareTo(str2));
输出 32

  1. 误区 ==

不少人会比较string的时候用到== 其实==表示对比底层地址。

String str1 = "abc";
String str2 = new String("abc");
 
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
 
System.out.println(str1=="abc");
System.out.println(str1.equals("abc"));
false
true
true
true
str1==str2 返回了false,因为两个字符串所在的存储地址不同。str2 是 str1 的拷贝,不过值相同所以equals

https://java-er.com/blog/java-compare-string/