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]),可讀性更強。