我试图解析一个文件,该文件的每一行都用管道定界值。当我没有在split方法中转义管道定界符时,它不能正常工作,但是在我如下所示转义管道后,它却可以正常工作。
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;
}
有人可以解释为什么该split()
方法需要转义管道字符吗?
+1代表
—
redDevil
Pattern.quote
String
并返回一个String
与输入匹配的正则表达式(即,它为您完成了所有转义操作)。