Java字符串拆分"|"

Vij*_*jay 13 java string string-split

我试图用Java解析一些数据,用'|'分隔 序列.以下是数据示例.

String s = "111206|00:00:00|2|64104|58041";
String [] temp = s.split("|");
for(String p: temp)
System.out.println(p);
Run Code Online (Sandbox Code Playgroud)

但不是分裂为'|' 它分别将每个角色分开.这是我得到的上述代码的输出.

 1
 1
 1
 2
 0
 6
 |
 0
 0
 :
 0
 0
 :
 0
 0
 |
 2
 |
 6
 4
 1
 0
 4
 |
 5
 8
 0
 4
 1
Run Code Online (Sandbox Code Playgroud)

我发现通过更换'|'找到了转机 通过','在行中,但代码补丁将运行多次,我想优化它.

 String s = "111206|00:00:00|2|64104|58041";
 s = s.replace('|', ',');
Run Code Online (Sandbox Code Playgroud)

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

Doo*_*nob 33

你必须使用:

String [] temp = s.split("\\|");
Run Code Online (Sandbox Code Playgroud)

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

你需要两条斜线,因为第一个是转义实际\的字符串,因为\是在一个字符串Java的转义字符.Java理解像" \|" 这样的字符串,然后正则表达式就像" |" 一样理解它.