黑马程序员技术交流社区
标题:
JAVA中String类型的问题
[打印本页]
作者:
梁健
时间:
2011-11-24 12:49
标题:
JAVA中String类型的问题
本帖最后由 l梁键 于 2011-11-24 16:12 编辑
在JAVA中,如果判断一个String实例是否为空,一般用如下来判断:
String a;
if((a==null) || (a.trim().equals("")))
为什么用equals方法?
好像不会用a.trim() == "" 这个条件来代替第二个条件.
请问这是为什么?
作者:
清秋
时间:
2011-11-24 13:03
==比较的是对象的地址
作者:
肖岑锋
时间:
2011-11-24 13:40
以上程序,==比较的是空的对象地址,equals比较的空的对象。
作者:
强子
时间:
2011-11-24 14:15
搜一搜 吧里有很多将equals和==的帖子,去看看吧
作者:
moonlight
时间:
2011-11-24 14:22
equals是比较内容的,对于字符串变量来说,使用“= =”和“equals()”方法比较字符串时,其比较方法不同。
“= =”比较两个变量本身的值,即两个对象在内存中的首地址。
作者:
梦女孩
时间:
2011-11-24 14:26
本帖最后由 梦女孩 于 2011-11-24 14:26 编辑
==比较的是对象的地址
在==比较里面
new String("")==""是false
作者:
冯敏
时间:
2011-11-24 15:09
a.trim()方法是去掉头部和尾部的空格,比如说:
String str=" aaa ";
String str2 = "bbb";
那么它用str1.trim().equals("")方法和用str2.equals("")方法结果是一样的,那不就多此一举了吗,我感觉没必要
作者:
程佳佳
时间:
2011-11-24 15:43
==比较的是两个对象的地址,equals比较的是两个对象的内容
作者:
程佳佳
时间:
2011-11-24 15:47
两者只要有一个为空,则这个String实例为空
作者:
梁健
时间:
2011-11-24 16:10
哦,原来如此!
作者:
李龙龙
时间:
2011-11-24 16:35
String a=new String();
System.out.println(a.trim().equals(""));//true ,对象a 建立,没有赋值默认为空
String str=null ;
System.out.println(str==null);//true,str没有被实例化,在内存中不存在
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2