如何将包围<>的mapDir替换为某个字符串?字符串索引超出范围,全部替换
String mapDir = "D:\\mapping\\specialists\\ts_gpc\\";
String test = "foo: <mapDir> -bar";
println(test.replaceAll("<mapDir>", mapDir));
上面给了我一个StringIndexOutOfBoundsException。
下面的代码适用于我,但我认为纯java也必须工作。
static String replaceWord(String original, String find, String replacement) {
int i = original.indexOf(find);
if (i < 0) {
return original; // return original if 'find' is not in it.
}
String partBefore = original.substring(0, i);
String partAfter = original.substring(i + find.length());
return partBefore + replacement + partAfter;
}
需要引用(Pattern.quote)的replaceAll的第一个参数,因为它是一个正则表达式。 – 2014-11-22 13:17:55
看看这个帖子http://stackoverflow.com/questions/18875852/why-string-replaceall-in-java-requires-4-slashes-in-regex-to-actually-r/ – gashu 2014-11-22 13:38:45