Как заменить точку (.) в строке на Java
у меня есть строка под названием persons.name
Я хочу заменить точку .
С /*/
i.e мой выход будет persons/*/name
я попробовал этот код:
String a="*";
str=xpath.replaceAll(".", a);
я получаю StringIndexOutOfBoundsException.
как заменить точку?
2 ответов
вам нужно две обратные косые черты перед точкой, один, чтобы избежать косой черты, чтобы он прошел, а другой, чтобы избежать точки, чтобы она стала буквальной. Косые черты и звездочка рассматриваются буквально.
str=xpath.replaceAll("\.", "/*/"); //replaces a literal . with /*/
использовать Apache Commons Lang:
String a= "\*\";
str = StringUtils.replace(xpath, ".", a);
или с автономным JDK:
String a = "\*\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);