Mam wywołanego Stringa persons.name
Chcę wymienić DOT .
z /*/
IE moje wyjście będziepersons/*/name
Wypróbowałem ten kod:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
Otrzymuję StringIndexOutOfBoundsException.
Jak zamienić kropkę?
Mam wywołanego Stringa persons.name
Chcę wymienić DOT .
z /*/
IE moje wyjście będziepersons/*/name
Wypróbowałem ten kod:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
Otrzymuję StringIndexOutOfBoundsException.
Jak zamienić kropkę?
Odpowiedzi:
Potrzebujesz dwóch odwrotnych ukośników przed kropką, jednego, aby uciec przed ukośnikiem, aby się przedostał, a drugi, aby uciec przed kropką, aby stała się dosłowna. Ukośniki i gwiazdka są traktowane dosłownie.
str=xpath.replaceAll("\\.", "/*/"); //replaces a literal . with /*/
Użyj Apache Commons Lang :
String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);
lub z samodzielnym JDK:
String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
Jeśli chcesz zamienić prosty ciąg i nie potrzebujesz umiejętności wyrażeń regularnych, możesz po prostu użyć replace
, nie replaceAll
.
replace
zastępuje każdy pasujący podciąg, ale nie interpretuje swojego argumentu jako wyrażenia regularnego.
str = xpath.replace(".", "/*/");
return zdanie.replaceAll ("\ s", ".");
xpath.replaceAll("\\\\.", "/*/")
?