Как заменить точку (.) в строке на Java

у меня есть строка под названием persons.name

Я хочу заменить точку . С /*/ i.e мой выход будет persons/*/name

я попробовал этот код:

String a="*";
str=xpath.replaceAll(".", a);

я получаю StringIndexOutOfBoundsException.

как заменить точку?

2 ответов


вам нужно две обратные косые черты перед точкой, один, чтобы избежать косой черты, чтобы он прошел, а другой, чтобы избежать точки, чтобы она стала буквальной. Косые черты и звездочка рассматриваются буквально.

str=xpath.replaceAll("\.", "/*/");          //replaces a literal . with /*/

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)


использовать 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);