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

Java 字符串分割:正確使用 split 方法處理文件路徑

     編輯:程式設計綜合問答

在 Java 中使用 String.split() 分割字符串時,參數是正則表達式而非普通字符。許多開發者在分割 Windows 路徑(如 C:\\Program\\files\\images\\flower.jpg)時,直接寫 split("\\") 導致 PatternSyntaxException,原因是反斜槓 \ 在正則中是轉義字符,需要雙重轉義。

錯誤示範

String path = "C:\\Program\\files\\images\\flower.jpg";
// ❌ 拋出 PatternSyntaxException
String[] tokens = path.split("\\"); 

正確寫法:四個反斜槓或使用 Pattern.quote

// ✅ 寫法 1:四個反斜槓(Java 字符串轉義 + 正則轉義)
String[] tokens = path.split("\\\\"); 

// ✅ 寫法 2:Pattern.quote 自動轉義(推薦,可讀性強)
String[] tokens = path.split(Pattern.quote("\\"));

// ✅ 寫法 3:使用 File.separator 獲取系統分隔符(跨平台最佳)
String[] tokens = path.split(Pattern.quote(File.separator));

完整範例:獲取文件名

String path = "C:\\Program\\files\\images\\flower.jpg";
String[] tokens = path.split(Pattern.quote(File.separator));
String fileName = tokens[tokens.length - 1]; // 取最後一段
System.out.println(fileName); // 輸出:flower.jpg

補充:Java 7+ 使用 Path API 更優雅

Path path = Paths.get("C:\\Program\\files\\images\\flower.jpg");
String fileName = path.getFileName().toString(); // 直接獲取文件名

常見陷阱總結

分割目標正則寫法說明
點號 .split("\\.") 或 split(Pattern.quote("."))正則中 . 代表任意字符
竄線號 |split("\\|")正則或運算符
美元符 $split("\\$")正則行尾錨點
反斜槓 \split("\\\\")雙重轉義

記住:split 參數永遠是正則表達式,含特殊字符時請用 Pattern.quote() 包裹,或查閱正則轉義表。

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