使用split(regEx)
和split(regEx, 0)
之间有什么区别吗?
因为输出是针对我测试的情况相同的。例如:
String myS = this is stack overflow;
String[] mySA = myS.split(' ');
结果为mySA === {'this','is','stack,'overflow'}
并且
String myS = this is stack overflow;
String[] mySA = myS.split(' ', 0);
也会产生mySA === {'this','is','stack,'overflow'}
这里有“隐藏”的东西吗?或者需要了解有关.split(regEx, 0)
?
答案 0 :(得分:5)
它们基本相同。
引自String.split(String regex)
文档:
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样。因此,结尾数组中不包含尾随空字符串。
答案 1 :(得分:0)
回答这个问题。是的他们是一样的。
请找到实习生调用split(regex,0)
方法的String类的split方法。
public String[] split(String regex) {
return split(regex, 0);
}
limit参数控制模式的次数 应用因此会影响结果数组的长度。如果 限制n大于零,那么模式将应用于 大多数n - 1次,数组的长度不会大于n,并且 数组的最后一个条目将包含除最后一个匹配之外的所有输入 分隔符。如果n是非正数,那么该模式将被应用为 尽可能多次,阵列可以有任何长度。 如果n为零 然后该模式将被应用尽可能多的数组,数组 可以有任何长度,尾随空字符串将被丢弃
例如,以下代码可以为您提供一些见解。
String myS = "this is stack overflow";
String[] mySA = myS.split(" ", 2);
String[] withOutLimit = myS.split(" ");
System.out.println(mySA.length); // prints 2
System.out.println(withOutLimit.length); // prints 4