Próbuję przeanalizować plik, który ma każdy wiersz z wartościami rozdzielanymi potokami. Nie działał poprawnie, gdy nie uniknąłem ogranicznika rury w metodzie dzielonej, ale działał poprawnie po ucieczce z rury, jak poniżej.
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;
}
Czy ktoś może wyjaśnić, dlaczego znak potoku musi zostać zmieniony w split()
metodzie?
Pattern.quote
String
i zwraca wyrażenie regularne,String
które będzie pasowało do danych wejściowych (tj. Zajmie się wszystkimi znakami ucieczki).