java 如何比较两个字符串
比较字符串的内容是否相等
使用 equals() 方法比较两个字符串的内容是否完全相同(区分大小写):
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // 返回 false
使用 equalsIgnoreCase() 方法忽略大小写比较内容:
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 返回 true
比较字符串的引用是否相同
使用 == 运算符比较两个字符串对象的引用(内存地址)是否相同:
String str3 = "Java";
String str4 = "Java";
String str5 = new String("Java");
boolean isSameRef1 = (str3 == str4); // 返回 true(字符串常量池优化)
boolean isSameRef2 = (str3 == str5); // 返回 false(new 创建新对象)
按字典序比较字符串
使用 compareTo() 方法比较两个字符串的字典顺序:
- 返回值为 0 表示相等
- 返回值小于 0 表示当前字符串在字典中靠前
- 返回值大于 0 表示当前字符串在字典中靠后
String a = "apple";
String b = "banana";
int result = a.compareTo(b); // 返回负数("apple" < "banana")
使用工具类比较
通过 Objects.equals() 避免空指针异常:

import java.util.Objects;
boolean safeEqual = Objects.equals(str1, str2);
注意事项
- 内容比较优先使用
equals()而非== - 常量字符串应放在
equals()左侧避免空指针:"literal".equals(variable) - 字典序比较常用于排序场景






