在java中使用分隔符计数分隔字符串

时间:2015-02-25 15:28:28

标签: java delimiter

我的数据如下:

  

4819116 | 2014-12-25T06:45:42 | 24.4153 | -109.0765

int|yyyy-mm-ddTHH:MM:SS|int| -ve int

我想分成:

4819116, 2014, 12, 25, 06:45:42, 24.4153, -109.0765

当我使用分隔符:String col [] = line.split("[|T-]");

它将负数读为正数(即-109.0765109.0765)但我想读为负数。即,我只想使用-分隔符2次。

2 个答案:

答案 0 :(得分:2)

看起来你只想在-被数字包围时才分开。

在这种情况下,请使用split("[|T]|(?<=\\d)-(?=\\d)")

(?<=\\d)(?=\\d)look-around机制

样本:

String data = "4819116|2014-12-25T06:45:42|24.4153|-109.0765";
System.out.println(Arrays.toString(data.split("[|T]|(?<=\\d)-(?=\\d)")));

输出:[4819116, 2014, 12, 25, 06:45:42, 24.4153, -109.0765]

答案 1 :(得分:0)

您可以line.split("([|T]|(?<![|])-)")使用split“|”或“T”或“ - ”前面没有“|”。