我有一个表单列表:(" string,num"," string,num",...)
我已经在线找到了如何使用单个字符串执行此操作的解决方案,但无法将其调整为字符串列表。
此外,在映射之前,应将数值转换为Int / Double。
我将不胜感激。
答案 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))