在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法
1. equals()
equals() 方法将逐个地比较两个字符串的每个字符是否相同。
"abc".equals("abc")
2. equalsIgnoreCase() 方法
equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同, 但是忽略大小写
"Abc".equalsIgnoreCase("abc")
返回true
3. compareTo() 方法
compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值。
String str1 = "a"; String str2 = "A"; System.out.println(str1.compareTo(str2));
输出 32
4. 误区 ==
不少人会比较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