Java字符串拆分操作
当我在java中拆分一个字符串时,如下面的代码所示,它给出的长度为3Java字符串拆分操作,java,string,Java,String,当我在java中拆分一个字符串时,如下面的代码所示,它给出的长度为3 String data = "DK4..||VSDK4|"; String[] tokens = data.split("\\|"); System.out.println(tokens.length); 但是应该是4,这背后的原因是什么?来自: 因此,结果数组中不包括尾随的空字符串 这是因为使用单个参数的split调用第二个参数为0的split,根据该方法的 如果n为零,则将尽可能多次应用该模式,数组可以有任何长度,并
String data = "DK4..||VSDK4|";
String[] tokens = data.split("\\|");
System.out.println(tokens.length);
但是应该是4,这背后的原因是什么?来自:
因此,结果数组中不包括尾随的空字符串
这是因为使用单个参数的split
调用第二个参数为0
的split
,根据该方法的
如果n为零,则将尽可能多次应用该模式,数组可以有任何长度,并且将丢弃尾随的空字符串
见以下文件:
围绕给定正则表达式的匹配项拆分此字符串。
此方法的工作方式类似于通过调用具有
给定的表达式和零的极限参数尾随空
因此,结果数组中不包括字符串
您可以使用负数限制
来获得所有:
String[]tokens=data.split(“\\\\”,-1)代码>
如果n为非正,则该模式将应用尽可能多的次数
可能,数组可以有任意长度。如果n为零,则
阵列可以有
任何长度和尾随的空字符串都将被丢弃
为什么应该是4?因为“结果数组中不包含尾随的空字符串”。@FedericoklezCulloca如果你将其作为答案发布,我将对此进行投票。@DawoodibnKareem done:)你为什么否决这个问题?这不是一个合理的问题吗?