当前位置: 技术问答>java相关
" String ".trim()== "String"为什么是false?
来源: 互联网 发布时间:2015-03-21
本文导语: 我觉得" String ".trim()虽然返回的是一个新的String对象"String",但是我认为这个新的对象仍然是指向在iteral pool里的"String"啊,不明白为什么会是false? | 唯一的解释是(我猜的): 对字符常数(im...
我觉得" String ".trim()虽然返回的是一个新的String对象"String",但是我认为这个新的对象仍然是指向在iteral pool里的"String"啊,不明白为什么会是false?
|
唯一的解释是(我猜的):
对字符常数(immutable)和new String()得到的处理方式是不一样的,
//直接对字符常数的操作都得到同一个对象,所以("String".trim()=="String".trim());
因为:
String s2=" String ";
System.out.println(s2.trim()==" String ".trim());
得到的是false!
哈哈我知道问题在哪了:
System.out.println(" String ".trim()==" String ".trim() );
得到的是false!
If this String object represents an empty character sequence, or the first and last characters of character sequence represented by this String object both have codes greater than 'u0020' (the space character), then a reference to this String object is returned.
当没有空格时 trim()是不会返回一个新的对象的!!!
对字符常数(immutable)和new String()得到的处理方式是不一样的,
//直接对字符常数的操作都得到同一个对象,所以("String".trim()=="String".trim());
因为:
String s2=" String ";
System.out.println(s2.trim()==" String ".trim());
得到的是false!
哈哈我知道问题在哪了:
System.out.println(" String ".trim()==" String ".trim() );
得到的是false!
If this String object represents an empty character sequence, or the first and last characters of character sequence represented by this String object both have codes greater than 'u0020' (the space character), then a reference to this String object is returned.
当没有空格时 trim()是不会返回一个新的对象的!!!