錯誤案例
【現象描述】表面看上去內容一樣的字符串和單個字符拼接比對,結果永遠爲false
【錯誤代碼】 "34".equals('3' + '4')
錯誤分析
當且僅當+操作符的操作數中至少有一個是String類型時,纔會執行字符串連接操作;否則,執行加法。
如:在本例中'3' + '4'得到的結果是整型數值103,而不是字符串"34"。
如果是字符'a' + 'b'得到的結果是a,b字符的ASCII碼相加的整型數值。
根據這樣的情況,可以有幾種選擇:
1、 預置一個空字符串("" + 'a' + 'A')
2、 將第一個數值用String.valueOf()顯示地轉換成一個字符串(String.valueOf('a') + 'A')
3、 使用一個字符串緩衝區(sb.append('a');sb.append('A'););
正確用法
"ab".equals("" + '3' + '4')