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
Freigeben: 2024-12-25 01:19:18
Original
333 Leute haben es durchsucht

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("\|");
Nach dem Login kopieren

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);
Nach dem Login kopieren

Erwartet Ausgabe:

Beide Lösungen erzeugen die gewünschte Ausgabe:

>A<
>B<
>C<
><
>D<
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage