源码:
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
本文深入解析了一种用于比较两个CharSequence对象是否相等的方法。详细介绍了源码逻辑,包括对同一对象、空值、长度不一及不同类型的CharSequence实例的处理策略。并通过示例展示了该方法在各种情况下的返回结果。
2万+





