Как заменить точку (.) в строке на Java
у меня есть строка под названием persons.name
Я хочу заменить точку .
С /*/
то есть мой выход будет 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);