在scala中拆分字符串

时间:2016-01-20 15:31:40

标签: string scala

我发现了这个"奇怪的"类split的scala函数string中的行为:

"a:b::".split(":")返回Array[String] = Array(a, b)

相反,我想获得Array[String] = Array(a, b, "", "")

你有想法得到这样的回应吗?

1 个答案:

答案 0 :(得分:4)

limit参数与-1

一起使用
scala> "a:b::".split(":", -1)
res1: Array[String] = Array(a, b, "", "")

签名split(regex: String, limit: Int)有一个更长的重载,但你只使用regex参数的重载,它调用前一个重载,limit为零。当limit为零时,从数组末尾丢弃空字符串。

来自javadoc

  

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