testo - metodo read java




Java: sostituire "[" "]" dalle stringhe dei file di testo (2)

sto usando

str.replaceAll("GeoData[", "");

per sostituire il simbolo "[" in alcune stringhe nel mio file di testo, ma ottengo:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 7
GeoData[
       ^
    at java.util.regex.Pattern.error(Pattern.java:1713)

Come posso risolvere questo ?


Usa il metodo non-regex String.replace(..) : str.replace("GeoData[", "")

(Le persone tendono a perdere questo metodo, perché accetta un oggetto CharSequence come argomento anziché una String ma String implementa CharSequence )


Il metodo replaceAll interpreta l'argomento come espressione regolare. In un'espressione regolare devi sfuggire [ se vuoi il suo significato letterale altrimenti viene interpretato come l'inizio di una classe di caratteri.

str = str.replaceAll("GeoData\\[", "");

Se non intendevi usare un'espressione regolare, usa invece replace , come menziona Bozho nella sua risposta .





replace