【发布时间】:2018-12-08 19:10:05
【问题描述】:
当我使用这两种方法时,我想知道区别,以及 equalsIgnoreCase() 是如何忽略两个字符串的大小写的。但是我什至没有发现源代码的区别,只是代码的顺序不同。 谁能帮我分析一下源码的区别,怎么忽略大小写的?谢谢。 这是源代码:
public static boolean equals(CharSequence cs1, CharSequence cs2) {
if (cs1 == cs2) {
return true;
} else if (cs1 != null && cs2 != null) {
if (cs1.length() != cs2.length()) {
return false;
} else {
return cs1 instanceof String && cs2 instanceof String ? cs1.equals(cs2) : CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
}
} else {
return false;
}
}
public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2) {
if (str1 != null && str2 != null) {
if (str1 == str2) {
return true;
} else {
return str1.length() != str2.length() ? false : CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
}
} else {
return str1 == str2;
}
}
【问题讨论】:
-
对
regionMatches的调用肯定不一样。
标签: java equals apache-commons-lang3