30

我正在尝试使用由“|”分隔的 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('|', ',');

我只想知道'|'有什么问题 ??

4

1 回答 1

86

您必须使用:

String [] temp = s.split("\\|");

这是因为该split方法采用正则表达式,并且|是特殊字符之一。它的意思是“或”。这意味着你正在分裂'' or '',这只是''。因此它将在每个字符之间拆分。

您需要两个斜杠,因为第一个用于转义 string 中的实际值,因为Java\string\中的转义字符。Java 将字符串理解为“ \|”,然后正则表达式将其理解为“ |”。

于 2013-05-01T01:55:17.300 回答