如何將包圍<>的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