【发布时间】:2014-11-22 13:15:05
【问题描述】:
如何将 包围的 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 的第一个参数,因为它是一个正则表达式。