Escape des Pipe-Symbols für die Zeichenfolgenaufteilung in Java
Die Java-String-Klasse stellt die Methode split() bereit, um eine Zeichenfolge in ein Array aufzuteilen von Teilzeichenfolgen mithilfe eines Trennzeichens oder eines regulären Ausdrucks. Bei der Aufteilung durch ein Pipe-Symbol (|) tritt das unerwartete Verhalten auf, da das Pipe-Symbol ein Metazeichen in regulären Ausdrücken ist.
Das Problem ergibt sich aus den Regeln regulärer Ausdrücke:
Daher wird bei Verwendung von test.split("|") das | Das Zeichen wird als ODER-Operator und nicht als literales Pipe-Symbol interpretiert. Um dieses Problem zu lösen, müssen Sie das Pipe-Symbol mit einem Escapezeichen versehen.
Lösung 1: Das Pipe-Symbol maskieren
Um das Pipe-Symbol zu maskieren, verwenden Sie einen doppelten Backslash, geschrieben als \ innerhalb einer Zeichenfolge. Dadurch wird Java angewiesen, dass | sollte als wörtliches Zeichen und nicht als Metazeichen behandelt werden.
String test = "A|B|C||D"; String[] result = test.split("\|");
Lösung 2: Verwenden Sie Pattern.quote()
Alternativ können Sie das Muster verwenden .quote()-Methode zum Erstellen einer maskierten Version des Pipe-Symbols.
String test = "A|B|C||D"; Pattern pattern = Pattern.quote("|"); String[] result = test.split(pattern);
Erwartet Ausgabe:
Beide Lösungen erzeugen die gewünschte Ausgabe:
>A< >B< >C< >< >D<
Das obige ist der detaillierte Inhalt vonWie kann ich das Pipe-Symbol für die String-Aufteilung in Java richtig maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!