当前位置: 代码迷 >> Java Web开发 >> 问一个简单有关问题,java中怎么判断字符串值相等
  详细解决方案

问一个简单有关问题,java中怎么判断字符串值相等

热度:36   发布时间:2016-04-16 22:00:38.0
问一个简单问题,java中如何判断字符串值相等 ?
java String

(1) 在C#中 == 可以等于equals,因为 == 被重写了(string),在Java中不是这样吗?

(2)大家建议用equals来判断字符串是否相等吗?如果遇到null怎么办??
        

  if (str !=null && str.equals(str2))
{
     return true;
}


上面的代码是不是太繁琐了?有没有简单的判断方法,毕竟我仅仅是判断字符串相等,如何简单的要求.

(3)我是不是可以认为使用==在java,也没有多大关系,毕竟,字符串直接赋值的,而且环境中如果值相同都是指向同一个地址引用的,毕竟很少人用 String aa = new String("aa");这样的方式...


如上,谢谢大家回复...
------解决方案--------------------
java中如果想比较两个字符串的值是否相等,是要用equals的。如果想比较两个字符串对象是否相等才用== 的。
你说的第三点,万一你后续又对某个字符串进行了处理,来回处理了几次,但是字符串的内容还是没有变化,但是此时有可能地址值的引用已经变化了,所以使用==号还是不可取的。
就用你写的那个代码的那种方式吧
------解决方案--------------------
1.在java中,==等同于Object的equals,但是String的equals被重写,所以比较String的对象,==和equals完全是两码事,==比较的是引用,equals比较的是值。
2.这就是最简单的写法,比较引用类型的对象,这是最起码的安全处理。
3.不要抱有侥幸心理,在java中,比较字符串的值就用equals,再说了,一般做项目谁会定义一堆全局string去比来比去的?
  相关解决方案