此代码字符串列表集合转换成双打与CSV第一个字符串删除转换:使用折叠或映射到一个集合
val points = List(("A1,2,10"), ("A2,2,5"), ("A3,8,4"), ("A4,5,8"), ("A5,7,5"), ("A6,6,4"), ("A7,1,2"), ("A8,4,9"))
points.map (m => (m.split(",")(1).toDouble , m.split(",")(2).toDouble))
//> res0: List[(Double, Double)] = List((2.0,10.0), (2.0,5.0), (8.0,4.0), (5.0,8.0), (7.0,5.0), (6.0,4.0), (1.0,2.0), (4.0,9.0))
可以这样重新编写使用倍或地图,使得其长度CSV列表中元素的数量不是硬编码的?目前这只是正确的,每个字符串包含3个CSV元素。但我不能确定使用N个元素,如("A1,2,10,4,5")
更新如何重新写:这是可能的解决方案:
points.map (m => (m.split(",").tail).map(m2 => m2.toDouble))
可以使用单遍历,而不是两个可以实现吗?