Warum benötigt String.split einen Pipe-Begrenzer, der maskiert werden kann?

Ich versuche zu Parsen einer Datei, jede Zeile mit dem pipe-delimited-Werte.
Es hat nicht richtig funktioniert, wenn ich nicht die Flucht der pipe-Trennzeichen für split-Methode, aber es funktioniert einwandfrei, nachdem ich entging das Rohr als unten.

private ArrayList<String> parseLine(String line) {
    ArrayList<String> list = new ArrayList<String>();
    String[] list_str = line.split("\\|"); //note the escape "\\" here
    System.out.println(list_str.length);
    System.out.println(line);
    for(String s:list_str) {
        list.add(s);
        System.out.print(s+ "|");
    }
    return list;
}

Kann mir bitte jemand erklären, warum das pipe-Zeichen muss maskiert werden, für die split() Methode?

InformationsquelleAutor der Frage SK1 | 2012-03-21

Schreibe einen Kommentar