StringOps.split(String,Int)中第二个参数的含义

时间:2014-07-11 13:14:48

标签: scala

我试图拆分一个字符串并保留空字符串。幸运的是,我找到了一个很有前景的解决方案,它给出了我的预期结果,如下面的REPL会话描述:

scala> val test = ";;".split(";",-1)
test: Array[String] = Array("", "", "")

我很好奇第二个参数实际上做了什么并潜入scala documentation但除此之外什么都没找到:

enter image description here

同样在REPL解释器内部我只能得到以下信息:

scala> "asdf".split

TAB

def split(String): Array[String]        
def split(String, Int): Array[String]

问题 是否有人为这些记录错误的参数提供备用文档来源? 或者有人可以解释这个2dn参数对这个特定函数的作用吗?

1 个答案:

答案 0 :(得分:11)

这与split的{​​{1}}相同,因为它发生了更好documentation

  

limit参数控制模式的次数   应用因此会影响结果数组的长度。如果   限制n大于零,那么模式将应用于   大多数n - 1次,数组的长度不会大于n,并且   数组的最后一个条目将包含除最后一个匹配之外的所有输入   分隔符。如果n是非正数,那么该模式将被应用为   尽可能多次,阵列可以有任何长度。如果n为零   那么模式将尽可能多地应用于数组   可以有任何长度,尾随空字符串将被丢弃。