环境:斯卡拉2.10+ IDE:Eclipse的开普勒斯卡拉:如何将一个字符串分解成地图
我有一个线 NAME=bala AGE=23 COUNTRY=Singapore
我怎样才能得到它的地图
Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)
环境:斯卡拉2.10+ IDE:Eclipse的开普勒斯卡拉:如何将一个字符串分解成地图
我有一个线 NAME=bala AGE=23 COUNTRY=Singapore
我怎样才能得到它的地图
Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)
又一解决方案
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)
我走到这样的事情,但我几乎可以肯定有一种更有效的方式:
val line = "NAME=bala AGE=23 COUNTRY=Singapore"
line.split(" ").map(_.split("=")).map(arr => arr(0) -> arr(1)).toMap
这给了我:
res10: scala.collection.immutable.Map[String,String] = Map(NAME -> bala, AGE -> 23, COUNTRY -> Singapore)
使用正则表达式:
val line = "NAME=bala AGE=23 COUNTRY=Singapore"
val regex = """(\w+)=(\w+)""".r
val map = line.split("\\s+") map { elem =>
val regex(key, value) = elem
(key, value)
} toMap
我刚走到精确解。好一个 – serejja