it-swarm.it

Come sostituire punto (.) In una stringa in Java

Ho una stringa chiamata persons.name

Voglio sostituire DOT . con /*/ i.e il mio output sarà persons/*/name

Ho provato questo codice:

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

Sto ottenendo StringIndexOutOfBoundsException.

Come posso sostituire il punto?

70

Sono necessari due backslash prima del punto, uno per sfuggire alla barra in modo che attraversi e l'altro per sfuggire al punto in modo che diventi letterale. Le barre e l'asterisco sono trattati letteralmente.

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)

123
Femi

Usa Apache Commons Lang :

String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);

o con JDK standalone:

String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
8
palacsint

Se vuoi sostituire una semplice stringa e non hai bisogno delle abilità delle espressioni regolari, puoi semplicemente usare replace , non replaceAll.

replace sostituisce ogni sottostringa corrispondente ma non interpreta il suo argomento come un'espressione regolare.

str = xpath.replace(".", "/*/");
3
khelwood

return sentence.replaceAll ("\ s", ".");

0
Smart Engineers