我试图用Java解析一些数据,用'|'分隔序列。以下是数据的示例。
String s = "111206|00:00:00|2|64104|58041";
String [] temp = s.split("|");
for(String p: temp)
System.out.println(p);
但不是分裂为'|'它分别将每个角色分开。这是我得到的上述代码的输出。
1
1
1
2
0
6
|
0
0
:
0
0
:
0
0
|
2
|
6
4
1
0
4
|
5
8
0
4
1
我通过更换“|”找到了转身通过','在行中,但代码片段将运行多次,我想优化它。
String s = "111206|00:00:00|2|64104|58041";
s = s.replace('|', ',');
我只是想知道'|'的问题是什么??
答案 0 :(得分:27)
您必须使用:
String [] temp = s.split("\\|");
这是因为split
方法采用正则表达式,|
是特殊字符之一。它的意思是'或'。这意味着您要按'' or ''
进行拆分,这只是''
。因此它会在每个角色之间分开。
你需要两个斜杠,因为第一个用于转义字符串中的实际\
,因为\
是字符串中Java的转义字符。 Java理解像“\|
”之类的字符串,然后正则表达式将其理解为“|
”。