为什么String.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需要一个正则表达式参数。未转义的|被解析为正则表达式,意思是“空字符串或空字符串”,这不是您的意思。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why does String.split need pipe delimiter to be escaped?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

20 + = 21