java.util.regex.PatternSyntaxException: Nicht geschlossene Zeichenklasse in der Nähe von Index 0

8

Ich versuche, alle eckigen Klammern in meiner Zeichenfolge zu ersetzen.

Das ist mein Programm

%Vor%

Aber ich bekomme

%Vor%

Könnte mir bitte jemand sagen, wie man alle eckigen Klammern ersetzt?

    
Kiran 28.06.2014, 08:40
quelle

1 Antwort

21

String.replaceAll verwendet ein reguläres Ausdrucksmuster, aber Sie benötigen keine regulären Ausdrücke. Sie können verwenden:

%Vor%

Oder Sie könnten einen Regex verwenden, wenn Sie möchten, und beide auf einmal ersetzen:

%Vor%

Sprich: "Ersetze ein beliebiges Zeichen in der Menge (öffne die eckige Klammer, schließe die eckige Klammer) mit der leeren Zeichenfolge. Das \ soll die eckigen Klammern innerhalb der Menge verlassen.

Beachten Sie, dass Sie das Ergebnis von replace (oder replaceAll ) verwenden müssen - Zeichenketten sind in Java unveränderlich, also ändern Methoden wie replace nicht die vorhandene Zeichenkette. Sie geben einen Verweis auf eine neue Zeichenfolge mit den entsprechenden Änderungen zurück.

    
Jon Skeet 28.06.2014, 08:42
quelle

Tags und Links