[英]Convert a Seq["key1=val1"] to a Map[String, String] in Scala
我有以下 Seq[String],所有字符串都帶有=
分隔符。
keysVals = ["Country=France", "City=Paris"]
我想把它轉換成一個 Map[String, String],比如
result = Map("Country"->"France", "City"->"Paris")
請問怎么做呢?
最短的路似乎是
data.map { case s"${k}=${v}" => k -> v }.toMap
使用StringContext.s.unapplySeq
作為
val data = List("Country=France", "City=Paris")
println(data.map { case s"${k}=${v}" => k -> v }.toMap)
(感謝@Luis Miguel Mejía Suárez)。
或者,使用 Regex 模式匹配:
val KeyValuePattern = "([^=]+)=([^=]+)".r
data.map { case KeyValuePattern(k, v) => k -> v }.toMap
使用舊的String.split
:
data.map(str => str.split("=") match { case Array(k, v) => k -> v }).toMap
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.