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前辈予以解答 展开
String a=" abc ",b="abc";
a=a.trim();
System.out.println(a==b);
结果显示false,这是怎么回事,应该是true呀,别外求子串substring方法还有类似的问题出现,请java前辈予以解答 展开
5个回答
展开全部
其实,你只要看一下源码就知道了,解释的很明白,trim是去除前后空白,如果没有空白,返回原对象,如果有,使用subString截取不含有空白的部分返回;
而subString,是new一个对象返回;
再看你定义的a是有空白的,所以trim之后是一个新对象,这个对象在堆空间,而b在字符串常量池,然后用==判断,肯定是false了,==和equals的区别就不用我再多说了吧
而subString,是new一个对象返回;
再看你定义的a是有空白的,所以trim之后是一个新对象,这个对象在堆空间,而b在字符串常量池,然后用==判断,肯定是false了,==和equals的区别就不用我再多说了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
trim方法是对字符串进行去除“前后”空格的一个方法,不能去除字符串中间部分的空格。
举例:
String str = " aaa bbb ";
String result = str.trim();
输出结果:"aaa bbb"。
举例:
String str = " aaa bbb ";
String result = str.trim();
输出结果:"aaa bbb"。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.out.println(a.equals(b));
==是比较地址的,而equal才是比较内容的,string型一定要用equals比较内容!
==是比较地址的,而equal才是比较内容的,string型一定要用equals比较内容!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
==是用于对象地址的判断的,内容要用equals
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询