J'ai une chaîne appelée persons.name
Je souhaite remplacer le point de code .
par /*/
i.e mon résultat sera persons/*/name
J'ai essayé ce code:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
Je reçois une exception StringIndexOutOfBoundsException.
Comment remplacer le point?
Vous avez besoin de deux barres obliques inverses avant le point, l’une pour échapper à la barre oblique afin qu’elle passe, et l’autre pour échapper au point afin qu’elle devienne littérale. Les barres obliques et l'astérisque sont traités littéralement.
str=xpath.replaceAll("\\.", "/*/"); //replaces a literal . with /*/
Utilisez Apache Commons Lang :
String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);
ou avec JDK autonome:
String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
Si vous souhaitez remplacer une chaîne simple et que vous n'avez pas besoin des capacités des expressions régulières, vous pouvez simplement utiliser replace
, pas replaceAll
.
replace
remplace chaque sous-chaîne correspondante mais n'interprète pas son argument comme une expression régulière.
str = xpath.replace(".", "/*/");
retour phrase.replaceAll ("\ s", ".");