将csv字符串转换为字符串列表

时间:2014-01-29 21:30:09

标签: scala

val lines : String = ("a1 , test1 , test2 , a2 , test3 , test4")

我想将此转换为字符串列表,其中列表中的每个字符串包含3个元素,因此上面的列表将转换为包含“a1,test1,test2”和“a2,test3,test4的字符串的2个元素列表“

我考虑过的一个选项是迭代字符串中的每个cvs元素,如果在当前第三个元素的元素上,则添加然后将前面的元素添加到新字符串中。有更实用的方法吗?

2 个答案:

答案 0 :(得分:3)

grouped将它们划分为具有值n的固定组。

scala> lines.split(",").grouped(3).toList
res0: List[Array[String]] = List(Array("a1 ", " test1 ", " test2 "), Array(" a2 ", " test3 ", " test4"))

答案 1 :(得分:0)

@Brian的答案就足够了;对于格式为

的输出
 "a1 , test1 , test2" and "a2 , test3 , test4"

考虑例如

scala> val groups = lines.split(",").grouped(3).map { _.mkString(",").trim }.toList
groups: List[String] = List(a1 , test1 , test2, a2 , test3 , test4)

然后

scala> groups(0)
res1: String = a1 , test1 , test2

scala> groups(1)
res2: String = a2 , test3 , test4