关于string的疑问
"String ".trim() == "String ".trim();//true
"String ".replace( 'g ', 'G ')== "String ".replace( 'g ', 'G ');//false
"String ".replace( 't ', 't ') == "String ";//true
以上方法应该返回的都是一个新的String对象 ,而==应该比较的是字符串的对象,==号左右两边返回的都是新的字符串对象,怎么会相等呢?
------解决方案--------------------先看看trim()方法的实现再说话。
------解决方案--------------------如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020 '(空格字符),则返回对此 String 对象的引用。
------解决方案--------------------JAVA中,两个String是否相等的判断方法是调用String.equals() 不是直接使用 ==
------解决方案--------------------用 "== "不是不可以,如果是两个对象,两个对象完全相同时可以得到true
最好不要这样用,用equals()
项目中如果很多这样的比较可以考虑重写这个方法
------解决方案--------------------http://www.javaranch.com/journal/200409/Journal200409.jsp#a1
读完这个你就会明白了