Scala:如何将String拆分为Map

Bal*_*laB 6 scala scala-2.8 scala-collections scala-2.10

环境:Scala 2.10+ IDE:Eclipse Kepler

我有一条线 NAME=bala AGE=23 COUNTRY=Singapore

我如何将其作为地图获取

Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)

om-*_*nom 14

又一个解决方案

val str = "NAME=bala AGE=23 COUNTRY=Singapore"
val pairs = str.split("=| ").grouped(2)
val map = pairs.map { case Array(k, v) => k -> v }.toMap
// Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)
Run Code Online (Sandbox Code Playgroud)


ser*_*jja 6

我想到了这样的事情,但我几乎可以肯定有更有效的方法:

val line = "NAME=bala AGE=23 COUNTRY=Singapore"
line.split(" ").map(_.split("=")).map(arr => arr(0) -> arr(1)).toMap
Run Code Online (Sandbox Code Playgroud)

这给了我:

res10: scala.collection.immutable.Map[String,String] = Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)
Run Code Online (Sandbox Code Playgroud)