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

Java 字串長度與索引關係:為什麼 length()-1 是最後一個字元索引

     編輯:程式設計疑難解答

零基礎索引

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())。
  • 需處理 Emoji、生僻字時,使用 s.codePoints() 串流 API (Java 8+)。

理解「長度 = 最後索引 + 1」是所有零基礎語言(C、C++、Java、JS、Python、Go...)的通用規則。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved