我有一個在後端數據庫中稱爲'路徑'的字段,它存儲了某些資源的路徑。我的想法是讓用戶輸入具有特定字符的路徑作爲文件分隔符(獨立於OS),而不是爲windows路徑存儲大量反斜槓(轉義)路徑。使用java.regex替換字符File.separator模式匹配器
例如:
原始路徑:
\\\\server\\share\\
與逃脫路徑DB:
\\\\\\\\server\\\\share\\\\
,而不是我想:
%%server%share%
,後來我想替換那些java的File.separator
爲真實的東西。對於這項工作,我發現最快的解決方案是使用java.regex模式匹配器。
我對這份工作的功能是:
private String convertToRealPathFromDB(String pth) {
String patternStr = "%";
String replaceStr = File.separator;
String convertedpath;
//Compile regular expression
Pattern pattern = Pattern.compile(patternStr); //pattern to look for
//replace all occurance of percentage character to file separator
Matcher matcher = pattern.matcher(pth);
convertedpath = matcher.replaceAll(replaceStr);
System.out.println(convertedpath);
return convertedpath;
}
,但本該是拯救生命與
java.lang.StringIndexOutOfBoundsException尋釁滋事同一文件分割符:字符串索引超出範圍:1
我已與其他字符測試(例如:取代「%」與「q」),並且該功能工作正常,但File.separator
和"\\\\"
作爲替換字符串不起作用。
我想知道它有這方面的解決方法。或者更好,更簡單和優雅的解決方案
`字符串項replacestr =文件分割符+文件分割符,'這將工作:) – 2011-01-22 11:37:27