簡體   English   中英

將 Seq["key1=val1"] 轉換為 Scala 中的 Map[String, String]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM