Как заменить точку (.) В строке в Java
У меня есть строка, называемая persons.name
Я хочу заменить DOT .
на /*/
i.e мой вывод будет persons/*/name
Я пробовал этот код:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
Я получаю исключение StringIndexOutOfBoundsException.
Как заменить точку?
Ответы
Ответ 1
Вам нужно две обратные косые черты перед точкой, одна, чтобы избежать косой черты, чтобы она проходила, а другая - чтобы избежать точки, чтобы она стала буквальной. Прямые косые черты и звездочка обрабатываются буквально.
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)
Ответ 2
Используйте 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);