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

Java String.split() 方法詳解與常見陷阱避坑指南

     編輯:Java 綜合教學

Java String.split() 方法詳解與常見陷阱避坑指南

java.lang.String.split() 是 Java 中將字符串分割為子字符串數組的核心方法。掌握其參數用法與正則表達式特性,能避免許多開發中的「隱形坑」。

方法簽名與參數說明

public String[] split(String regex, int limit)
public String[] split(String regex)
  • regex:分隔符正則表達式(可為字符串或正則)。若省略,返回包含原字符串的單元素數組。
  • limit:限制返回數組最大長度(僅正數生效)。
  • stringObj:被分割的字符串對象,原對象不會被修改。

基礎用法示例

示例 1:按空格分割

String str = "Java string split test";
String[] arr = str.split(" ");
// 輸出:Java / string / split / test

示例 2:使用 limit 限制分割數量

String str = "Java string split test";
String[] arr = str.split(" ", 2);
// 輸出:Java / string split test

核心陷阱:正則元字符轉義

點號 . 在正則中代表「任意字符」,直接使用 split(".") 會導致無輸出。

String ip = "192.168.0.1";
// 錯誤:String[] parts = ip.split("."); // 結果為空數組
// 正確:雙重轉義
String[] parts = ip.split("\\."); 
// 輸出:192 / 168 / 0 / 1

多重分隔符處理

使用 | 作為正則「或」運算符,需注意轉義:

String address = "上海^上海市@闵行區#吳中路";
// ^、@、# 皆為特殊字符,需轉義
String[] arr = address.split("\\^|@|#");
// 結果:[上海, 上海市, 闵行區, 吳中路]

進階:結合 Pattern/Matcher 進行複雜分割

String str = "第一句。第二句!第三句:第四句;第五句。";
String regEx = ":|。|!|;";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
// 後續可用 m.split() 或迭代匹配

實戰經驗總結(必讀)

  1. 特殊字符必須雙重轉義:.、|、*、+ 等在正則有特殊含義,Java 字符串中需寫成 \\.、\\| 等。
  2. 反斜杠 \ 作為分隔符:Java 字符串中 \\ 代表單個反斜杠,故 split("\\\\");字面量寫法 "a\\\\b\\\\c"。
  3. 多個分隔符合用:str.split(" |-|#") 可同時按空格、連字符、井號分割。

最佳實踐建議

  • 分割固定字符(如逗號、分號)優先用 split(","),無需正則開銷。
  • 涉及正則元字符時,先在線上正則測試工具驗證表達式。
  • 大數據量分割考慮 StringTokenizer 或手寫解析,避免正則性能損耗。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved