这就是我如何尝试确保属性文件中给出的路径是有效的 java 路径(使用 \\ 而不是 \):
String path = props.getProperty("path");
if (path.length()>1) path=path.replaceAll("\\\\", "\\");
if (path.length()>1) path=path.replaceAll("\\", "\\\\");
在第一次替换中,我确保如果路径已经有效(有 \\ 而不是 \),那么在第二次替换中它不会加倍为 \\\\ 而不是 \\...
无论如何,我得到了这个奇怪的例外:
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(Unknown Source)
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at com.hw.Launcher.main(Launcher.java:56)
谁能告诉我为什么?!