2014-02-27 40 views
0

我是新来的scala,所以想知道是否有人可以帮我一个函数,该函数将采用任意的标签列表,一个限定的文本字符串并返回类似于Map或词典。如何将标签和值映射到字典或地图

val labels = Seq("color", "cost", "name") 
val data = ("blue|$9.99|smurf") 

private def getData(data:String, labels:Seq[String]) { 
    val values = labels.split("|") 

    //now how to map this split values with the the labels to create a nice map or dictionary 
} 

回答

4
val labels = Seq("color", "cost", "name") 

val values = "blue|$9.99|smurf".split("\\|") 
// Array(blue, $9.99, smurf) 

val map = labels.zip(values).toMap 
// Map(color -> blue, cost -> $9.99, name -> smurf) 
+0

很好。为什么要调用最终的toMap方法?如果你只是在没有“toMap”的情况下调用“zip”,你会得到什么? – MonkeyBonkey

+0

zip会给你一个(标签,值)元组列表。您必须致电toMap将其转换为地图 – csgero

+0

@MonkeyBonkey zip会生成一个元组列表。 – Kyle