Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 7中的字符串拆分(regex表示非空格)_Java_Regex_Split - Fatal编程技术网

Java 7中的字符串拆分(regex表示非空格)

Java 7中的字符串拆分(regex表示非空格),java,regex,split,Java,Regex,Split,输出: String test="I am preparing for OCPJP"; String[] tokens=test.split("\\S"); System.out.println("length:"+tokens.length); for(String s:tokens) { System.out.print("["+s+"]"); } System.out.println(); 现在我把split(regex)改为split(regex,limit) 输出: length

输出:

String test="I am preparing for OCPJP";
String[] tokens=test.split("\\S");
System.out.println("length:"+tokens.length);
for(String s:tokens) {
  System.out.print("["+s+"]");
}
System.out.println();
现在我把split(regex)改为split(regex,limit)

输出:

length:16
[][ ][][ ][][][][][][][][][ ][][][ ]
你能告诉我为什么这个结果不同吗?非常感谢

国家:

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

国家:

该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串


而1-arg,no limit重载相当于
0
的限制。对于非零限制,将不再丢弃尾随的空字符串。不再丢弃的这5个尾随空字符串对应于“OCPJP”中的非空格。例如,非零限制的值是多少?@KickButtowski要获得至少21的长度,
限制必须为负数(无限制)或者至少
21
。谢谢你的回答,但我仍然不明白为什么1-arg拆分方法只为16个拆分部分而不是21个拆分部分丢弃了最后一个字符串OCPJP。@rgetman我有点了解你说的,但我不清楚。您能解释一下吗?@Leometal最后一个OCPJP字符串没有被忽略;最后5个空字符串被丢弃,因此,它们不会显示在返回的数组中。此处的限制值是多少?我投票将此问题作为重复项关闭,但如果您认为重复项无法回答您的问题,请随时通知我有关未涵盖的部分的信息,我将改进重复项或重新打开您的问题。是,这是重复的,但还是要谢谢你们,在我稍后提问之前,我会更仔细地搜索
length:21
[][ ][][ ][][][][][][][][][ ][][][ ][][][][][]