Java没有';t split“|&引用;正确的符号

Java没有';t split“|&引用;正确的符号,java,split,Java,Split,我有一个包含内容的文件 1 |是| 2 |是| 3 |是| 4 |是| 5 |是| 6 |是| 7 |是| 8 |是| 9 |是| 10 |是| 11 |是| 12 |是| 13 |是| 14 |是| 15 |是| 我使用java的String[]tokens=split(“|”);拆分每一行,但它返回(例如拆分“10 | yes |”)[1,0,|,y,e,s,|]。它似乎不是按“|”拆分,而是拆分每个字符。有人知道吗?谢谢 split接受正则表达式|在正则表达式中有特定的含义,它表示一种替换

我有一个包含内容的文件

1 |是|
2 |是|
3 |是|
4 |是|
5 |是|
6 |是|
7 |是|
8 |是|
9 |是|
10 |是|
11 |是|
12 |是|
13 |是|
14 |是|
15 |是|


我使用java的
String[]tokens=split(“|”)
;拆分每一行,但它返回(例如拆分“10 | yes |”)[1,0,|,y,e,s,|]。它似乎不是按“|”拆分,而是拆分每个字符。有人知道吗?谢谢

split
接受正则表达式
|
在正则表达式中有特定的含义,它表示一种替换。要在
|
上实际拆分,必须在正则表达式中用反斜杠将其转义。由于使用字符串文字指定正则表达式,并且反斜杠在字符串文字中是特殊的,因此必须使用另一个反斜杠来转义:

String[] tokens = str.split("\\|");
在一般情况下,如果要按字面意思使用字符串的内容,可以使用自动转义任何特殊字符。您在此处并不真正需要它,但它对于最终用户输入的值很有用:

String[] tokens = str.split(Pattern.quote(stringToSplitOnLiterally));

谢谢T.J。!刚试过。它现在正在工作,感谢您的解释!