字符串和多個char類型的字符相加比較問題

錯誤案例

【現象描述】表面看上去內容一樣的字符串和單個字符拼接比對,結果永遠爲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')


發佈了26 篇原創文章 · 獲贊 2 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章