源码:
public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
//同一对象返回true
if (cs1 == cs2) {
return true;
}
//一个或两个都为null返回false
if (cs1 == null || cs2 == null) {
return false;
}
//两个字符串的长度不一样返回false
if (cs1.length() != cs2.length()) {
return false;
}
//两个都是String实例,则通过equals方法比较,本质是使用==比较两个对象
if (cs1 instanceof String && cs2 instanceof String) {
return cs1.equals(cs2);
}
//使用区间匹配进行比较
return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
}
结果:
- StringUtils.equals(null, null) = true
- StringUtils.equals(null, “abc”) = false
- StringUtils.equals(“abc”, null) = false
- StringUtils.equals(“abc”, “abc”) = true
- StringUtils.equals(“abc”, “ABC”) = false