第一件事,第一,这里是我的代码:为什么不在此代码尊重我的最后的分割模式
String line = "Events|1005435529|7021370073||PAGELOAD|2017-06-19T12:04:40||JI||ServerHostName|ServerIPAddress|9P2_D2jB9Toct7PDTJ7zwLUmWfEYz6Y4akyOKn2g4CepveMH4wr3!46548593!1497854077121|||||||||||";
int offset = line.indexOf("Events");
String zeroIn = line.substring(offset);
String[] jsonElements = zeroIn.split("\\|");
System.out.println(Arrays.asList(jsonElements));
输出:
[Events, 1005435529, 7021370073, , PAGELOAD, 2017-06-19T12:04:40, , JI, , ServerHostName, ServerIPAddress, 9P2_D2jB9Toct7PDTJ7zwLUmWfEYz6Y4akyOKn2g4CepveMH4wr3!46548593!1497854077121]`
我也注意到空间添加到每个数组元素开始。
我的问题是我在字符串line
的末尾有将近10个空管道符号,而空管线符号的第一个第二和第三个出现受到尊重,最后一个被错过并且不加在阵列。我在这里错过什么?
你已经得到了有关空元素的答案。要回答另一个问题,*没有为每个数组元素添加额外的空格。它只是*打印*,以提高可读性。如果您打印单个元素,则会看到开头处没有空格。您还可以通过观察输出中的第一个元素“事件”来看到这一点。 – domsson