为什么这段代码会抛出异常?
file = file.replaceAll(Pattern.quote("/"),File.separator);
Run Code Online (Sandbox Code Playgroud)
Message: String index out of range: 1 File: null Class: java.lang.String Methode: charAt Line: -1 File: null Class: java.util.regex.Matcher Methode: appendReplacement Line: -1 File: null Class: java.util.regex.Matcher Methode: replaceAll Line: -1 File: null Class: java.lang.String Methode: replaceAll Line: -1
的第二个参数replaceAll是也在一定程度上的图案.特别是,反斜杠具有特殊含义.但是,您不仅仅想使用,Pattern.quote因为它会引用超出您需要的内容.你想用Matcher.quoteReplacement:
file = file.replaceAll(Pattern.quote("/"),
Matcher.quoteReplacement(File.separator));
Run Code Online (Sandbox Code Playgroud)
或者 - 更确切地说 - 根本不使用正则表达式:
file = file.replace("/", File.separator);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |