val lines : String = ("a1 , test1 , test2 , a2 , test3 , test4")
我想将此转换为字符串列表,其中列表中的每个字符串包含3个元素,因此上面的列表将转换为包含“a1,test1,test2”和“a2,test3,test4的字符串的2个元素列表“
我考虑过的一个选项是迭代字符串中的每个cvs元素,如果在当前第三个元素的元素上,则添加然后将前面的元素添加到新字符串中。有更实用的方法吗?
答案 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