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

Java 中將點號替換為斜槓的正確姿勢

     編輯:程式設計綜合問答

問題

String s = "cn.sun.dao"; 想將點號 . 替換為 /。直接用 s.replaceAll(".", "/") 結果全字符都被替換,因為 replaceAll 的第一個參數是正則表達式,. 匹配任意字符。

解決方案

方法一:replaceAll + 轉義

String d = s.replaceAll("\\.", "/");  // 雙反斜杠:Java 字符串轉義 -> 正則引擎看到 \.

方法二:replace(不支援正則,推薦)

String d = s.replace(".", "/");   // 字面替換,性能更好
// 或
String d = s.replace('.', '/');   // 單字符替換重載

核心區別

方法支援正則適用場景
replaceAll(regex, repl)是複雜模式替換
replace(CharSequence, CharSequence)否字面字符串替換,Java 1.5+
replace(char, char)否單字符替換,最高效

最佳實踐

  • 不需要正則時優先用 replace,代碼更清晰、性能更高、避免轉義陷阱。
  • 必須用正則時,記住元字符需雙重轉義:.→\\.、$→\\$、\→\\\\。
  • 可用 Pattern.quote(str) 自動轉義整段字面字符串:s.replaceAll(Pattern.quote("."), "/")。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved