首页 > 技术文章 > equalsIgnoreCase()方法与equals()的区别是什么?

huohuoL 2016-08-28 14:19 原文

今天在新项目上发现了一个很有趣的函数–equalsIgnoreCase()。那么它到底起到什么作用呢?简单点而言就是两个string类型的变量进行对比,看是否相等的功能,但是在对比是否相等的需求下,我们常用的还是equals()方法,相比equals而言,equalsIgnoreCase()有其自己的功能,可以忽略大小写,只要两个类型字母组成一样,那么就可以核对成功。
看如下的一个小demo,直接看结果就会体会结果:

 public static void main(String[] args) {
        String s1="HuoHuo";
        String s2="huohuo";
        String s3="Good";
        boolean rs1=s2.equalsIgnoreCase(s1);
        boolean rs2=s2.equals(s1);
        boolean rs3=s2.equalsIgnoreCase(s3);
        System.out.println(rs1);
        System.out.println(rs2);
        System.out.println(rs3);
    }

结果
看到这个关键字,突然想起上一个项目用到了身份证转换大小写的问题,由于紧急开发,在传输的身份证末尾到底是大写还是小写?第三方接口到底默认的是大写还是小写,最后由于版本上线,所以临时增添了重试机制。如果第一次失败,那么就把传值过来的身份证号末尾进行大小写替换,代码截图如下:
大小写
其实现在再看到这样的需求的时候,就发现对于一个想法真心有好几种实现机制,对于Character.toUpperCase(char) 和Character.toLowerCase(char)测试实例如下:

public static void main(String[] args) {
        String s1="HuoHuo";
        String s2="huohuo";
        String s3="HUOHUO";
//        将s1值转换成小写
        boolean rs1=s1.toLowerCase().equals(s2);
//        将s1值转换成大写
        boolean rs2=s1.toUpperCase().equals(s3);
        System.out.println(rs1);
        System.out.println(rs2);
    }

test
再此算是对关键字有一个简单的认识吧。

推荐阅读