Pipe-Trennzeichen in String.split maskieren
Wenn Sie die Split-Methode für eine Zeichenfolge verwenden, ist es wichtig, die Bedeutung des Escapezeichens für bestimmte Zeichen zu verstehen . Insbesondere das Pipe-Zeichen (|) fungiert als spezielles Trennzeichen, und seine Anwesenheit ohne Escapezeichen kann zu unerwarteten Ergebnissen führen.
Warum der Pipe entkommen?
Das Die Split-Methode erwartet ein reguläres Ausdrucksargument, wobei jedes Zeichen eine bestimmte Mustervergleichsregel darstellt. Wenn eine Pipe ohne Escapezeichen verwendet wird, wird sie als logischer ODER-Operator innerhalb der Regex interpretiert. Dies bedeutet, dass es ein Muster darstellt, das entweder mit einer leeren Zeichenfolge oder einer anderen leeren Zeichenfolge übereinstimmt, was nicht das beabsichtigte Verhalten ist.
Beispiel
Betrachten Sie den folgenden Codeausschnitt: Dadurch wird versucht, eine Zeile mit durch Pipes getrennten Werten zu analysieren:
private ArrayList<String> parseLine(String line) { ArrayList<String> list = new ArrayList<String>(); String[] list_str = line.split("|"); for(String s:list_str) { list.add(s); System.out.print(s+ "|"); } return list; }
Ohne die Pipe zu umgehen, wird dieser Code fälschlicherweise jedes Zeichen in der Zeichenfolge als Trennzeichen verwenden, was zu einem leeren Array führt.
Lösung: Escape the Pipe
Um sicherzustellen, dass die Pipe als wörtliches Trennzeichen erkannt wird, muss sie mit dem Backslash-Zeichen maskiert werden. Dies zeigt der Split-Methode an, dass die Pipe als Zeichen und nicht als Regex-Operator behandelt werden soll:
private ArrayList<String> parseLine(String line) { ArrayList<String> list = new ArrayList<String>(); String[] list_str = line.split("\|"); for(String s:list_str) { list.add(s); System.out.print(s+ "|"); } return list; }
Durch das Escapen der Pipe mit „|“ trennt die Split-Methode die Werte in der Zeile nun korrekt .
Das obige ist der detaillierte Inhalt vonWarum sollte ich das Pipe-Zeichen in der String.split-Methode von Java maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!