zoukankan      html  css  js  c++  java
  • Java中equals()、equalsIgnoreCase()和==的区别

    用久了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")则会重新生成一个变量地址。
  • 相关阅读:
    Unicode与JavaScript详解 [很好的文章转]
    4种方法生成二维码 (js 控制canvas 画出 二维码)
    JQuery-Dialog(弹出窗口,遮蔽窗口)
    JQuery实现可编辑的表格
    7个提高效率的JavaScript调试工具
    jQuery中的编程范式
    10款CSS3按钮
    jQuery(function(){})与(function(){})(jQuery)的区别
    JQuery之ContextMenu(右键菜单)
    糟糕的css用法 1
  • 原文地址:https://www.cnblogs.com/mnight/p/3677650.html
Copyright © 2011-2022 走看看