首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 字符串拼接陷阱:'a'+1 vs ""+'a'+1 輸出差異解析

     編輯:程式設計綜合問答

代碼片段

int a = 90;
System.out.println('a' + 1);      // 輸出 98
System.out.println("" + 'a' + 1); // 輸出 a1

原因分析

第一句:'a' + 1

  • 'a' 是 char 字面量,編碼值 97 (ASCII)。
  • 發生數值提升:char → int,進行整數加法:97 + 1 = 98。
  • println(int) 輸出數字 98。

第二句:"" + 'a' + 1

  • "" 是空 String。
  • 左到右結合:("" + 'a') 先執行,char 被轉為 String "a",結果為 "a"。
  • 接著 "a" + 1,int 1 轉為 String "1",拼接得 "a1"。
  • println(String) 輸出 "a1"。

關鍵規則

  1. + 左邊有 String → 字符串拼接,其他操作數轉 String。
  2. + 兩邊皆為數值類型(含 char) → 數學加法。
  3. char 在單獨參與算術時視為 int;參與拼接時視為單字符字符串。

最佳實踐

  • 明確意圖時使用 String.valueOf()、Character.toString()、String.format()。
  • 避免在同一表達式混用算術與拼接,易產生困惑。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved