• 技术文章 >Java >java教程

    详解Java中equals()、equalsIgnoreCase()和==三者区别

    零下一度零下一度2017-05-23 10:55:45原创2241

    用久了C#,在Java中,判断一个字符串还是习惯性的用了==,但是总是不能按照正确的判断分支运行,后来才想起来Java中是有equals的,然后就有引出了equalsIgnoreCase。
    这三种的正确运用能对敲代码的时候减少不少烦躁的机会。
    一、==
    ==是最经典的判断,此符号判断的是两个对象的值,即对象的内存地址。

    [java]String s1 = new String("abc");
    String s2 = new String("abc");
    System.out.println(s1 == s2);
    [/java]

    这两个字符串字符是相同的,但是内存地址不同,用==判断输出结果是:false;
    二、equals和equalsIgnoreCase
    equals是Object的方法,用来判断两个对象是否相同,在判断字符串时它判断的是两个对象的内容是否相同。
    equalsIgnoreCase是String的判断方法,只能判断两个字符串。

    [java]
    String s1 = new String("abc");
    String s2 = new String("Abc");
    System.out.println(s1.equals(s2));
    System.out.println(s1.equalsIgnoreCase(s2));
    [/java]

    上面的例子中,输出结果为:false true
    equalsIgnoreCase大小写不敏感 equals大小写敏感。
    引申:

    如果第一个例子写成这样:

    [java]
    String s1 = "abc";<
    String s2 = "abc";
    System.out.println(s1 == s2);
    [/java]

    输出结果就会是:True。
    这是为什么呢?
    在声明变量的时候,如果用=直接赋值,此时如果变量池中有相同值的字符串,那么就会直接把这个对象的地址赋给新的变量。
    而new String("abc")则会重新生成一个变量地址。

    【相关推荐】

    1. 分享Java中equals和equalsignorecase的区别及使用实例教程

    2. 介绍Java equalsIgnoreCase()方法实例

    3. java中equalsIgnoreCase方法的图文实例

    以上就是详解Java中equals()、equalsIgnoreCase()和==三者区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:介绍Java equalsIgnoreCase()方法实例 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java中Map集合体系的基本使用和常用API• Java数据结构常见排序算法(总结分享)• 一起来分析java设计模式之单例• 一文搞懂Java线程池实现原理• Java数据结构之单链表与OJ题
    1/1

    PHP中文网