在Scala中以尾随位置拆分带有分隔符的String

时间:2016-01-12 19:35:30

标签: scala

方法split不处理尾随位置的分隔符。

@ "a-b-".split("-")
res9: Array[String] = Array("a", "b")

但是,我希望Array("a", "b", "")

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您可以将附加参数limit传递给该函数(默认情况下为零):

scala> "a-b-".split("-", -1)
res3: Array[String] = Array(a, b, "")

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

Documentation

  

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