比较字符串时使用:equalsIgnoreCase()
String.equals()对大小写敏感,
而String.equalsIgnoreCase()忽略大小写
例如:
"ABC".equals("abc")是false
"ABC".equalsIgnoreCase("abc")为ture
源码:
public boolean equalsIgnoreCase(String anotherString) {
final int len = length();
return (this == anotherString) ? true
: (anotherString != null)
&& (anotherString.length() == len)
&& regionMatches(true, 0, anotherString, 0, len);
}
public boolean regionMatches(boolean ignoreCase, int toffset,
String other, int ooffset, int len) {
int to = toffset;
int po = ooffset;
// Note: toffset, ooffset, or len might be near -1>>>1.
if ((ooffset < 0) || (toffset < 0)
|| (toffset > (long)length() - len)
|| (ooffset > (long)other.length() - len)) {
return false;
}
while (len-- > 0) {
char c1 = charAt(to++);
char c2 = other.charAt(po++);
if (c1 == c2) {
continue;
}
if (ignoreCase) {
// If characters don't match but case may be ignored,
// try converting both characters to uppercase.
// If the results match, then the comparison scan should
// continue.
char u1 = Character.toUpperCase(c1);
char u2 = Character.toUpperCase(c2);
if (u1 == u2) {
continue;
}
// Unfortunately, conversion to uppercase does not work properly
// for the Georgian alphabet, which has strange rules about case
// conversion. So we need to make one last check before
// exiting.
if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
continue;
}
}
return false;
}
return true;
}