我有一个csv格式的数据文件。
我试图使用基本拆分命令line.split(',')
拆分每一行
但是当我得到像这样"2,,"
的字符串时,
而不是像Array(2,"","")
那样返回一个数组
我得到一个Array: Array(2)
。
我绝对错过了一些基本的东西,有人可以指出在这里分割逗号分隔字符串的正确方法吗?
答案 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为零 那么模式将尽可能多地应用于数组 可以有任何长度,尾随空字符串将被丢弃。
使用split(separator: Char)
将使用limit
零来调用上面的重载。