我正在尝试解析一个文件,该文件的每一行都带有管道分隔值。 当我没有在 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()
方法需要转义管道字符?
最佳答案
String.split
需要一个正则表达式参数。未转义的 |
被解析为正则表达式,意思是“空字符串或空字符串”,这不是您的意思。
关于java - 为什么 String.split 需要转义管道分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808689/