Heim >Java >javaLernprogramm >Wie kann ich das Pipe-Symbol für die String-Aufteilung in Java richtig maskieren?

Wie kann ich das Pipe-Symbol für die String-Aufteilung in Java richtig maskieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-25 01:19:18335Durchsuche

How to Properly Escape the Pipe Symbol for String Splitting in Java?

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:

  • Das Pipe-Symbol (|) stellt den ODER-Operator in regulären Ausdrücken dar.
  • In Java-Strings ist das Backslash-Zeichen () ein Escapezeichen Zeichen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn