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

Java 字符串拼接中 + 號與引號配對規則解析

     編輯:程式設計綜合問答

問題代碼

System.out.println("a[" + i + "]" + a[i]);

疑問:[" + i + "] 不是字符串嗎?i 前後為什麼要有 + 號?

解析

引號配對

編譯器按最近配對原則匹配雙引號:

"a["   + i +   "]"   + a[i]
  │       │      │       │
  ▼       ▼      ▼       ▼
字符串  變量  字符串   陣列元素

因此共有三個字符串字面量:"a["、"]"、""(隱含),加上變量 i 和 a[i]。

+ 號作用

  • 連接字符串與非字符串:"a[" + i → i 自動轉為字符串拼接。
  • 左邊只要有字符串,整個表達式即為字符串拼接鏈。

[] 在字符串中只是普通字符

"a[" + i + "]" 中的 [ 和 ] 僅是字面字符,不構成陣列下標。陣列下標只在字符串外部(如 a[i])生效。

等效展開

String tmp = "a[" + String.valueOf(i) + "]";
System.out.println(tmp + a[i]);

建議

  • 複雜拼接使用 StringBuilder 或 String.format("a[%d]%s", i, a[i]),可讀性更強。
  • 調試時拆分輸出,觀察中間結果。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved