toCharArray() —— 最簡單直接String str = "abcdefg";
char[] arr = str.toCharArray();
// arr = {'a','b','c','d','e','f','g'}
Arrays.copyOf(value, count),性能優異。getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) —— 靈活切片String str = "abcdefg"; char[] dst = new char[3]; str.getChars(1, 4, dst, 0); // 複制索引 1~3 (bcd) 到 dst[0~2]
參數詳解:
srcBegin:起始索引(含)srcEnd:結束索引(不含),複制長度 = srcEnd - srcBegindst:目標數組(需預先分配足夠空間)dstBegin:目標數組起始寫入位置| 維度 | toCharArray() | getChars() |
|---|---|---|
| 用途 | 整體轉換 | 部分片段複製 |
| 內存分配 | 內部新建數組 | 調用者預分配 |
| 性能 | 極快(原生優化) | 快,避免創建中間對象 |
| 安全性 | 無風險 | 需防索引越界 |
toCharArray():代碼可讀性最高,JIT 編譯器優化最好。substring 再 toCharArray,或直接 getChars 避免創建子字符串對象(高性能場景)。char[] 並用 getChars 填充,減少 GC 壓力。理解底層數組複製機制,能在文本處理、解析器開發中寫出更高效的代碼。