Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串拆分操作_Java_String - Fatal编程技术网

Java字符串拆分操作

Java字符串拆分操作,java,string,Java,String,当我在java中拆分一个字符串时,如下面的代码所示,它给出的长度为3 String data = "DK4..||VSDK4|"; String[] tokens = data.split("\\|"); System.out.println(tokens.length); 但是应该是4,这背后的原因是什么?来自: 因此,结果数组中不包括尾随的空字符串 这是因为使用单个参数的split调用第二个参数为0的split,根据该方法的 如果n为零,则将尽可能多次应用该模式,数组可以有任何长度,并

当我在java中拆分一个字符串时,如下面的代码所示,它给出的长度为3

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:)你为什么否决这个问题?这不是一个合理的问题吗?