Jak zamienić kropkę (.) W ciągu znaków w Javie


87

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:



9

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);

9

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(".", "/*/");

1
To powinna być akceptowana odpowiedź, IMO.
Aaron Lehmann

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.