Scala - 具有String列表,必须用逗号分隔,然后放入Map

时间:2017-11-16 14:21:53

标签: scala csv data-structures

我有一个表单列表:(" string,num"," string,num",...)

我已经在线找到了如何使用单个字符串执行此操作的解决方案,但无法将其调整为字符串列表。

此外,在映射之前,应将数值转换为Int / Double。

我将不胜感激。

2 个答案:

答案 0 :(得分:2)

这是fold

的完美工作
// Your input
val lines = List("a,1", "b,2", "gretzky,99", "tyler,11")

// Fold over the lines, and insert them into a map
val map = lines.foldLeft(Map.empty[String, Int]) {
  case (map, line) =>

    // Split the line on the comma and separate the two parts
    val Array(string, num) = line.split(",")

    // Add new entry to the map
    map + (string -> num.toInt)
}

println(map)

输出:

Map(a -> 1, b -> 2, gretzky -> 99, tyler -> 11)

答案 1 :(得分:1)

可能不是最好的方法,但它应该满足您的需求

yourlist.groupBy( _.split(',')(0) ).mapValues(v=>v(0).split(',')(1))