java - 为什么 String.split 需要转义管道分隔符?

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

关于java - 为什么 String.split 需要转义管道分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808689/

相关文章:

java - 我的 $PATH 变量集的全局配置在哪里?

Java 同级删除抛出 ConcurrentModificationException

regex - Scala,正则表达式匹配忽略不必要的单词

c# - 正则表达式替换 Windows 换行符

android - 比较不同语言的字符串

java - 如何动态改变JLabel的内容

Java:如何创建一个数组并用构造函数中的对象填充它?

regex - Perl 正则表达式 : Match this or that but NOT the other

.net - 如何在 VB.net 中删除 .Sort 之前的引号

c++ - 为什么是 "std::vector<std::string> &"而不是 "void"?