st是字符串的名稱,trim()方法用來去掉字符串中的空格。只是不太明白st.trim().equals("")與"".equals(st)的區(qū)別,這兩個語句都是判斷st是否為空,那么前一個跟后一個相比效果有什么不一樣呢?盼高手解答
4 回答

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
從對象的角度看,st.trim()產(chǎn)生了一個新的對象,這個新的對象調(diào)用了equals("")方法,所以這個表達式一個有三個對象;而"".equals(st)中只有兩個對象。
從結(jié)果看,如果字符串st不是空,即st由空格組成時,st.trim().equals("")的結(jié)果為真,而"".equals(st)的結(jié)果為假。
如果字符串st為空,則這兩個表達式的結(jié)果就是一樣的。

隔江千里
TA貢獻1906條經(jīng)驗 獲得超10個贊
trim()方法去掉一個字符串首尾的空白字符。假設(shè)有一個字符串s = " "(3個空格),那么s.trim()后返回的就是""。
但是使用st.trim().equals("")會出現(xiàn)一個問題,當(dāng)st是傳入的參數(shù)時有可能出現(xiàn)null值,當(dāng)然也就沒有trim()和equals()方法,這時如果沒檢驗null值則會出現(xiàn)程序錯誤.
而"".equals(st)比較的時候如果st為null值也可以得出正確的結(jié)果,這是它們最大的不同.
- 4 回答
- 0 關(guān)注
- 1022 瀏覽
添加回答
舉報
0/150
提交
取消