2011-09-11 12 views
62

ho una stringa chiamata persons.nameCome sostituire puntino in una stringa in Java

Voglio sostituire il DOT . con /*/ vale a dire la mia uscita sarà persons/*/name

Ho provato questo codice (.):

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

Sto ricevendo StringIndexOutOfBoundsException.

Come sostituire il punto?

risposta

106

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)

+1

+1 perché doesnt richiede alcune importazioni di operare –

+0

non dovrebbe essere ' xpath.replaceAll ("\\\\.", "/ * /") '? – ha9u63ar

7

Uso Apache Commons Lang:

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

o con standalone JDK:

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