用equals呗因为equals是比较的内容是否相等

解决方案 »

  1.   

    String类对equals方法进行了重写,用来比较两个String对象中的内容是否相等,所以一般两个String比较的话是用equals来比较的,==是用来比较两个对象的地址是否相等。
      

  2.   

    == 比较的是String对象的地址;
    equals比较的是String的值——内容;
      

  3.   

    如果你要确定两个字符串是否相等,可以这样写:
    String a = "";
    String b = "";
    if(a != null && b !=null){
        if(a.equals(b))
             return true;
        else
             return false;
    }else if(a == null && b==null){
         return true;
    }else{
         return false;
    }
      

  4.   

    Java用equals   JavaScript用==(严格的话就是===)
      

  5.   

    equals就是内容相等,==就是两个对象完全相等,也在同一个地址
      

  6.   

    “==”性能高,但有局限性。
    “equals”性能差,但通用。(为什么性能差,可以看源代码)String s1 = "www.chinaot.com";
    String s2 = "www.chinaot.com";
    s1==s2为true,原因是编辑器将"www.chinaot.com"放进常量池,s2也是常量,这时就不必再放,而是用前常量的拘留值,所以两者是同一个值。类似一个业务中的应用:
    String color = "red";
    color == Color.RED.name()  //为trueString s3 = "www.chinaot.com";
    String s4 = new String("www.chinaot.com");new String()看作一个对象,它引用指向了前常量的拘留值。但它本身也是一个引用赋给了s4,因此s3和s4不是指向到同一个地方的,这里就必须用equals来对每个字符进行比较,也是性能差之原因。
      

  7.   


    1行代码搞定,你用了10行:
    return a != null && a.equals(b);
      

  8.   

    我记得在某一个版本的JDK更新说明里曾经提到过, 对于String==String 的解释,为了让该表达式更加的符合看起来的意思,最终判定效果已经改成 值判定了, 也就是说
    String s1 = "www.chinaot.com";
    String s2 = "www.chinaot.com";
    s1==s2为true至于实现方法用的是常量管理,还是操作符重载,就不知道了,
    仅供参考。
      

  9.   

    String 类型的比较与一个字符串是不是相等 应该用equals
      

  10.   


    1行代码搞定,你用了10行:
    return a != null && a.equals(b);字符串比较永远使用equals
    8楼的这个在a,b同时为null时结果是错的。
      

  11.   


    1行代码搞定,你用了10行:
    return a != null && a.equals(b);字符串比较永远使用equals
    8楼的这个在a,b同时为null时结果是错的。

    你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
    唉,这坛里怎么有连基本语法都没学通的就来问问题啊。 
      

  12.   

    a==b是比较的的是a和b的内存地址,内存地址相同则相等。a.equals(b)比较的其实也是内存地址,但是如果在model中重写equals方法的话,那么就是比较a和b内容值。如果还想hashcode方法,就会根据hash值来比较,看hash表是否相同
      

  13.   

    String是一个类,是用来描述字符串的一类事物。如果字符串内元素是字符时,用equals方法去比较;如果字符串内元素是数子时,可以用==; 
      

  14.   


    1行代码搞定,你用了10行:
    return a != null && a.equals(b);字符串比较永远使用equals
    8楼的这个在a,b同时为null时结果是错的。

    你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
    唉,这坛里怎么有连基本语法都没学通的就来问问题啊。 
    public static void main(String[] args) {
    String a = null;
    String b = null;
    boolean test = a != null && a.equals(b);
    System.out.println(test);
    }输出结果: false
      

  15.   


    1行代码搞定,你用了10行:
    return a != null && a.equals(b);字符串比较永远使用equals
    8楼的这个在a,b同时为null时结果是错的。

    你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
    唉,这坛里怎么有连基本语法都没学通的就来问问题啊。 
    public static void main(String[] args) {
    String a = null;
    String b = null;
    boolean test = a != null && a.equals(b);
    System.out.println(test);
    }输出结果: false你的意思是两个空值能相等?
      

  16.   

    简单点来说,==比较的是地址,equals比较的是地址里面的内容。每创建一个实例都会为他分配一个地址即使内容一样也是返回FALSE,因为地址不一样
    比如:String str1 = new String("123");
               String str2 = new String("123");
          你可以使输出试试,都是“123”,然后再用==试试看看肯定是返回false的      如果像下面这么写,同样两个字符串的结果都是“123”,但是用==却是返回true的
          String str1 = "123";
               String str2 = "123";
    上面两种情况用equals比较返回的都是true。所以对于String比较 通常使用equals。