我有一个内容
的文件 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,|]。似乎不是用“|”分割,而是分裂每个字符。有人有任何想法吗?谢谢!
答案 0 :(得分:2)
split
接受正则表达式。 |
在正则表达式中具有特定含义,它表示交替。要实际拆分|
,您必须使用反斜杠在正则表达式中将其转义。由于您使用字符串文字指定正则表达式,并且反斜杠在字符串文字中是特殊的,您必须使用另一个反斜杠转义 :
String[] tokens = str.split("\\|");
在一般情况下,如果要按字面意思使用字符串的内容,可以使用Pattern.quote
自动转义任何特殊字符。您在这里并不需要它,但它对最终用户输入的值很有用:
String[] tokens = str.split(Pattern.quote(stringToSplitOnLiterally));