在Scala中拆分逗号分隔的字符串:缺少尾随空字符串?

时间:2014-06-17 21:51:40

标签: string scala split

我有一个csv格式的数据文件。 我试图使用基本拆分命令line.split(',')拆分每一行 但是当我得到像这样"2,,"的字符串时, 而不是像Array(2,"","")那样返回一个数组 我得到一个Array: Array(2)。 我绝对错过了一些基本的东西,有人可以指出在这里分割逗号分隔字符串的正确方法吗?

1 个答案:

答案 0 :(得分:9)

这是从Java继承的。您可以使用split(String regex, int limit)重载来实现所需的行为:

"2,,".split(",", -1) // = Array(2, "", "")

请注意String而不是Char

如Java Docs所述,limit参数的用法如下:

  

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

Source

使用split(separator: Char)将使用limit零来调用上面的重载。