System.out.println("@@uno@@@due@tre@@@@@quattro@".replaceAll("@+", "-"));
ho in risposta
-uno-due-tre-quattro-
come aspettato. Utilizzando la seguente:
System.out.println("@@uno@@@due@tre@@@@@quattro@".replaceAll("@+", "\\"));
invece di avere
\uno\due\tre\quattro\
si ottiente
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:444)
at java.util.regex.Matcher.appendReplacement(Matcher.java:551)
at java.util.regex.Matcher.replaceAll(Matcher.java:661)
at java.lang.String.replaceAll(String.java:1663)
corredato da un Fatal Exception sulla VM. (1.4.2)
Qualcuno sa se e' un buco delle librerie o sto sbaglaindo qualcosa?
Grazie mille
Saluti
Il motivo č presto detto : il metodo replaceAll() utilizza una regular
expression del tipo "\\". Nella chiamata al metodo gli \ vengono raddoppiati
per questioni di escaping.
Spero di essermi spiegato bene, anche se non ne sono molto sivuro :)
Ciao
P.
"Nicola" <nicola...@katamail.com> ha scritto nel messaggio
news:2bfd7392.04062...@posting.google.com...