代碼:`System.out.println(i + \"\");`
原理:字串連接運算子觸發隱式 `toString()`
- Java 中 `+` 運算子對於 `String` 具有 **左至右結合性**。
- 當一邊是 `String` (此處 `\"\"` 空字串),另一邊是基本型別 (`int`),編譯器將基本型別 **自動轉換為字串**,等價於 `String.valueOf(i)` 或 `Integer.toString(i)`。
- 結果為新字串,內容為數字的十進位文字表示 (如 `42`)。
- `System.out.println` 印出該字串。
等價寫法
System.out.println(i + ""); // 最簡短
System.out.println(String.valueOf(i)); // 標準庫
System.out.println(Integer.toString(i)); // 明確型別
System.out.println("" + i); // 同理
System.out.printf("%d", i); // 格式化
效能提示
- 單次轉換差異微乎其微。
- 大量迴圈拼接字串請用 `StringBuilder`:
`StringBuilder sb = new StringBuilder(); for(int i: arr) sb.append(i).append(' ');`
常見誤區
- 以為 `i + \"\"` 是「加法」→ 實為字串連接。
- 寫 `System.out.println(i + \" \" + j);` 以為會先算 `i+j` → 實為 `((i + \" \") + j)` 字串拼接,結果如 `\"1 2\"` 而非 `3`。
記住:**只要 `+` 一邊是 `String`,整個運算鏈即為字串連接,基本型別自動 `toString()`**,這是 Java 語言規定的隱式轉換規則。