Java String 內部以 char[] value 儲存,索引從 0 開始:
String s = "ABC"; // 長度 3
// 索引:0='A', 1='B', 2='C'
char last = s.charAt(s.length() - 1); // 2 → 'C'
+---+---+---+
| A | B | C | <- char[]
+---+---+---+
0 1 2 <- 索引
長度 = 3
最後索引 = 長度 - 1 = 2
charAt(length()) → StringIndexOutOfBoundsException。substring(begin, end):end 為排除索引,s.substring(0, s.length()) 取全串。length() 返回 char 數量(UTF-16 代碼單元),codePointCount() 才是真實字符數。for (int i = 0; i < s.length(); i++) 或 for (char c : s.toCharArray())。s.codePoints() 串流 API (Java 8+)。理解「長度 = 最後索引 + 1」是所有零基礎語言(C、C++、Java、JS、Python、Go...)的通用規則。