Sto cercando di analizzare un file che ha ogni riga con valori delimitati da pipe. Non ha funzionato correttamente quando non sono uscito dal delimitatore di pipe nel metodo split, ma ha funzionato correttamente dopo essere uscito dal pipe come di seguito.
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;
}
Qualcuno può spiegare perché il carattere pipe deve essere evitato per il split()
metodo?
Pattern.quote
String
e restituisce una regexString
che corrisponderà all'input (ovvero, si occupa di tutte le fughe per te).