java中的trim方法很奇怪

举个例子来说吧:Stringa="abc",b="abc";a=a.trim();System.out.println(a==b);结果显示false,这是怎么回事,应该... 举个例子来说吧:

String a=" abc ",b="abc";
a=a.trim();
System.out.println(a==b);

结果显示false,这是怎么回事,应该是true呀,别外求子串substring方法还有类似的问题出现,请java前辈予以解答
展开
 我来答
百度网友947f1d874
2008-04-30 · TA获得超过211个赞
知道答主
回答量:154
采纳率:0%
帮助的人:137万
展开全部
String 是对象,a==b判断的是a和b是不是一个对象,他们是不同的对象,只是内容相同而已,你应该这么判断
System.out.println(a.equals(b));
只有int float double boolean这些不是对象的类型才可以用==直接判断内容是否相同,别的都要用equals
liqq886
2020-03-17 · TA获得超过275个赞
知道小有建树答主
回答量:328
采纳率:100%
帮助的人:122万
展开全部
其实,你只要看一下源码就知道了,解释的很明白,trim是去除前后空白,如果没有空白,返回原对象,如果有,使用subString截取不含有空白的部分返回;
而subString,是new一个对象返回;
再看你定义的a是有空白的,所以trim之后是一个新对象,这个对象在堆空间,而b在字符串常量池,然后用==判断,肯定是false了,==和equals的区别就不用我再多说了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
2015-08-18 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1746万
展开全部
trim方法是对字符串进行去除“前后”空格的一个方法,不能去除字符串中间部分的空格。
举例:
String str = " aaa bbb ";
String result = str.trim();
输出结果:"aaa bbb"。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smluyi
2008-04-30 · TA获得超过1356个赞
知道大有可为答主
回答量:515
采纳率:0%
帮助的人:813万
展开全部
System.out.println(a.equals(b));
==是比较地址的,而equal才是比较内容的,string型一定要用equals比较内容!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveqty
2008-04-30
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
==是用于对象地址的判断的,内容要用equals
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式