Java equalsIgnoreCase()不区分大小写判断两个字符串是否相等
今天学到了一个好用的东西,一个方法就实现不区分大小写的字符串判断,可以用在验证码校验上,这个方法就是equalsIgnoreCase()
,具体用法:
public class Demo2 {
public static void main(String[] args) {
String check = "WdNmD"; //假设为图片里显示的验证码
String input = "wdnmd"; //假设为用户输入验证码
if (input.equalsIgnoreCase(check)) {
System.out.println("正确");
}
else {
System.out.println("错误");
}
}
}
最后的结果是正确
这个用法和equals()
一样,只是不分区大小写
这个方法的实现源码主要是通过将字母统一转换成大写或小写后再一个个比较的
(部分源码)
// 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;
}