字串 "a,b,c,d.e.f,g" 需同時以逗號與句點分割,結果為 ["a","b","c","d","e","f","g"]。
String input = "a,b,c,d.e.f,g";
// [,.] 表示「逗號 或 句點」任一字元
String[] parts = input.split("[,.]");
for (String part : parts) {
System.out.println(part);
}
/* 輸出:
a
b
c
d
e
f
g
*/
| 模式 | 含義 | 範例結果 |
|---|---|---|
| 僅逗號 | ["a","b","c","d.e.f,g"] | |
| 逗號或句點 (字元類別) | ["a","b","c","d","e","f","g"] | |
| 一或多個逗號/分號 (避免空字串) | ["a","b","c"] (輸入 "a,,b;c") | |
| 句點需轉義 (單獨用時) | — |
"a,b,".split(",") → ["a","b"] (長度 2)。若需保留,用 split(",", -1) → ["a","b",""]。| * + ? ( ) [ ] { } ^ $ \ .。在字元類別 [] 內部,^ - ] \ 需轉義,其餘 (含 .) 視為字面值。split 內部編譯 Pattern,高頻呼叫建議預編譯 Pattern.compile("[,.]") 重用。若需分割後保留分隔符 (如解析器),使用 Pattern + Matcher 或 split("(?<=[,.])|(?=[,.])") (零寬斷言)。