我试图拆分一个字符串并保留空字符串。幸运的是,我找到了一个很有前景的解决方案,它给出了我的预期结果,如下面的REPL会话描述:
scala> val test = ";;".split(";",-1)
test: Array[String] = Array("", "", "")
我很好奇第二个参数实际上做了什么并潜入scala documentation但除此之外什么都没找到:
同样在REPL解释器内部我只能得到以下信息:
scala> "asdf".split
TAB
def split(String): Array[String]
def split(String, Int): Array[String]
问题 是否有人为这些记录错误的参数提供备用文档来源? 或者有人可以解释这个2dn参数对这个特定函数的作用吗?
答案 0 :(得分:11)
这与split
的{{1}}相同,因为它发生了更好documentation:
limit参数控制模式的次数 应用因此会影响结果数组的长度。如果 限制n大于零,那么模式将应用于 大多数n - 1次,数组的长度不会大于n,并且 数组的最后一个条目将包含除最后一个匹配之外的所有输入 分隔符。如果n是非正数,那么该模式将被应用为 尽可能多次,阵列可以有任何长度。如果n为零 那么模式将尽可能多地应用于数组 可以有任何长度,尾随空字符串将被丢弃。