Ich versuche, eine Datei zu analysieren, die jede Zeile mit durch Pipe getrennten Werten enthält. Es hat nicht richtig funktioniert, als ich den Pipe-Begrenzer in der Split-Methode nicht verlassen habe, aber es hat richtig funktioniert, nachdem ich wie unten beschrieben aus der Pipe entkommen bin.
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 jemand bitte erklären, warum das Pipe-Zeichen für die split()
Methode maskiert werden muss?
Pattern.quote
String
und gibt einen regulären Ausdruck zurückString
, der mit der Eingabe übereinstimmt (dh es kümmert sich um das Entkommen für Sie).