Java String拆分操作

时间:2018-03-20 09:19:21

标签: java string

当我在java中拆分字符串时,如下面的代码所示,它将长度设为3。

String data = "DK4..||VSDK4|";

String[] tokens = data.split("\\|");

System.out.println(tokens.length);

然而它应该是4,这背后可能是什么原因?

2 个答案:

答案 0 :(得分:3)

来自split method documentation

  

因此,结尾的空字符串不包含在结果数组中。

这是因为split只有一个参数调用split,第二个参数为0,根据该方法的documentation

  

如果n为零,则模式将被应用尽可能多次,数组可以具有任何长度,并且将丢弃尾随空字符串。

答案 1 :(得分:3)

请参阅split(String regex)的文档:

  

围绕给定正则表达式的匹配拆分此字符串。   此方法的工作方式就像通过调用双参数split方法一样   给定的表达式和一个零的限制参数。 尾随空   因此,字符串不包含在结果数组中

您可以使用split(String regex, int limit)使用否定limit来获取所有内容:

String[] tokens = data.split("\\|", -1);

  

如果n是非正数,那么模式将被应用多次   可能,阵列可以有任何长度。如果n为零,那么   模式将尽可能多地应用,数组可以有   任何长度,尾随空字符串都将被丢弃。