问一个简单问题,java中如何判断字符串值相等 ?

影游 2014-08-16 12:56:51
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");这样的方式...


如上,谢谢大家回复...
...全文
1859 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2014-08-17
  • 打赏
  • 举报
回复
引用 7 楼 xuanzhui1215 的回复:
Groovy里面可以用==处理字符串的相等
玄隹 2014-08-17
  • 打赏
  • 举报
回复
Groovy里面可以用==处理字符串的相等
xpcv587 2014-08-16
  • 打赏
  • 举报
回复
学习了 曾经也困惑了!新手受教了
小灯光环 2014-08-16
  • 打赏
  • 举报
回复
引用 4 楼 boyingyou 的回复:
[quote=引用 2 楼 wlwlwlwl015 的回复:] 1.在java中,==等同于Object的equals,但是String的equals被重写,所以比较String的对象,==和equals完全是两码事,==比较的是引用,equals比较的是值。 2.这就是最简单的写法,比较引用类型的对象,这是最起码的安全处理。 3.不要抱有侥幸心理,在java中,比较字符串的值就用equals,再说了,一般做项目谁会定义一堆全局string去比来比去的?
我想问,如果两个null,我想比较得出 true的结论,虽然这个毫无意义,这个条件语句该如何写呢?是不是书写起来复杂了?[/quote] 没法得到这个结论,null调用equals就已经报空指针异常了,所以你要通过条件判断第一个不能为null。
影游 2014-08-16
  • 打赏
  • 举报
回复
引用 2 楼 wlwlwlwl015 的回复:
1.在java中,==等同于Object的equals,但是String的equals被重写,所以比较String的对象,==和equals完全是两码事,==比较的是引用,equals比较的是值。 2.这就是最简单的写法,比较引用类型的对象,这是最起码的安全处理。 3.不要抱有侥幸心理,在java中,比较字符串的值就用equals,再说了,一般做项目谁会定义一堆全局string去比来比去的?
我想问,如果两个null,我想比较得出 true的结论,虽然这个毫无意义,这个条件语句该如何写呢?是不是书写起来复杂了?
影游 2014-08-16
  • 打赏
  • 举报
回复
引用 1 楼 xiangnan129 的回复:
java中如果想比较两个字符串的值是否相等,是要用equals的。如果想比较两个字符串对象是否相等才用== 的。 你说的第三点,万一你后续又对某个字符串进行了处理,来回处理了几次,但是字符串的内容还是没有变化,但是此时有可能地址值的引用已经变化了,所以使用==号还是不可取的。 就用你写的那个代码的那种方式吧
我写过new Class1,此Class1里面有字段是String类型,对其赋值的话,貌似 使用 == 是对的,暂时还没有碰到其他的情况,谢谢你的建议,我会使用equals
小灯光环 2014-08-16
  • 打赏
  • 举报
回复
1.在java中,==等同于Object的equals,但是String的equals被重写,所以比较String的对象,==和equals完全是两码事,==比较的是引用,equals比较的是值。 2.这就是最简单的写法,比较引用类型的对象,这是最起码的安全处理。 3.不要抱有侥幸心理,在java中,比较字符串的值就用equals,再说了,一般做项目谁会定义一堆全局string去比来比去的?
scott_129 2014-08-16
  • 打赏
  • 举报
回复
java中如果想比较两个字符串的值是否相等,是要用equals的。如果想比较两个字符串对象是否相等才用== 的。 你说的第三点,万一你后续又对某个字符串进行了处理,来回处理了几次,但是字符串的内容还是没有变化,但是此时有可能地址值的引用已经变化了,所以使用==号还是不可取的。 就用你写的那个代码的那种方式吧

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧