我的数据如下:
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.0765
为109.0765
)但我想读为负数。即,我只想使用-
分隔符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”或“ - ”前面没有“|”。