Tôi đang cố gắng phân tích một tệp có mỗi dòng với các giá trị được phân tách bằng đường ống. Nó không hoạt động chính xác khi tôi không thoát khỏi dấu phân cách đường ống trong phương pháp phân tách, nhưng nó hoạt động chính xác sau khi tôi thoát khỏi đường ống như dưới đây.
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;
}
Ai đó có thể vui lòng giải thích tại sao nhân vật ống cần được thoát cho split()
phương thức không?
Pattern.quote
String
và trả về một regexString
sẽ khớp với đầu vào (nghĩa là, nó sẽ chăm sóc tất cả các lối thoát cho bạn).