这就是我尝试确保属性文件中给出的路径是有效的 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)
谁能告诉我为什么吗?!
最佳答案
replaceAll
需要正则表达式,请使用 replace
代替。
您可以找到 JavaDocs here
关于java - 确保路径字符串是有效的 java 路径字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18230583/