【问题标题】:Meaning of 2nd parameter in StringOps.split(String, Int)StringOps.split(String, Int) 中第二个参数的含义
【发布时间】:2014-09-02 03:13:24
【问题描述】:

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

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

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

在 REPL 解释器中我也只能得到以下信息:

scala> "asdf".split

制表符

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

问题 是否有人为此类记录不充分的参数提供替代文档来源? 或者有人能解释一下这个 2dn 参数对这个特定功能有什么作用吗?

【问题讨论】:

    标签: scala


    【解决方案1】:

    这与java.lang.String 中的split 相同,碰巧有更好的documentation

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

    【讨论】:

    • 只有当我正确理解文档时,n 的数量才重要。因此,尽管-1 可以用任何负数替换,但任何负数都将导致相同的输出。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2012-10-26
    • 2020-09-13
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多