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

Java 字串分割實戰:split() 正則表達式支援多重分隔符 (逗號、句點)

     編輯:程式設計綜合問答

需求場景

字串 "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")
句點需轉義 (單獨用時)—

常見坑點

  1. 尾端空字串被丟棄:"a,b,".split(",") → ["a","b"] (長度 2)。若需保留,用 split(",", -1) → ["a","b",""]。
  2. 特殊正則字元需轉義:| * + ? ( ) [ ] { } ^ $ \ .。在字元類別 [] 內部,^ - ] \ 需轉義,其餘 (含 .) 視為字面值。
  3. 效能:split 內部編譯 Pattern,高頻呼叫建議預編譯 Pattern.compile("[,.]") 重用。

進階:保留分隔符

若需分割後保留分隔符 (如解析器),使用 Pattern + Matcher 或 split("(?<=[,.])|(?=[,.])") (零寬斷言)。

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