为什么单管道字符会混淆java split方法?

jav*_*dba 4 java parsing

请尝试以下方法:

String[] = "abcde|12345|xyz".split("|");
Run Code Online (Sandbox Code Playgroud)

结果不会(至少我...)预期.

使用任何其他角色似乎没问题.

String[] = "abcde,12345,xyz".split(",");
Run Code Online (Sandbox Code Playgroud)

那么管子有什么特别之处呢?

ced*_*d-b 15

Java String.split()期望RegExp和管道字符在RegExps中具有除逗号之外的特殊含义.请尝试以下方法:

String[] = "abcde|12345|xyz".split("\\|");
Run Code Online (Sandbox Code Playgroud)


Pat*_*ins 7

split方法期待正则表达式,并且"|" 是regex世界中的一个特殊角色:http://www.tutorialspoint.com/java/java_string_split.htm