如何从csv字符串中获取地图
发布时间:2020-12-16 19:12:16 所属栏目:安全 来源:网络整理
导读:我对 Scala很新,但我现在正在练习. 我有一个字符串 "AAugsburg;BBerlin" .我最终想要的是一张地图 val mymap = Map("A"-"Augsburg","B"-"Berlin") 我做的是: val st = locations.split(";").map(dynamicListExtract _) 与功能 private def dynamicListExtra
我对
Scala很新,但我现在正在练习.
我有一个字符串 "A>Augsburg;B>Berlin" .我最终想要的是一张地图 val mymap = Map("A"->"Augsburg","B"->"Berlin") 我做的是: val st = locations.split(";").map(dynamicListExtract _) 与功能 private def dynamicListExtract(input: String) = { if (input contains ">") { val split = input split ">" Some(split(0),split(1)) // return key,value } else { None } } 现在我有了 Array[Option[(String,String) 如何将其优雅地转换为Map [String,String] 有人可以帮忙吗? 解决方法
只需将地图调用更改为flatMap:
scala> sPairs.split(";").flatMap(dynamicListExtract _) res1: Array[(java.lang.String,java.lang.String)] = Array((A,Augsburg),(B,Berlin)) scala> Map(sPairs.split(";").flatMap(dynamicListExtract _): _*) res2: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map((A,Berlin)) 为了比较: scala> Map("A" -> "Augsburg","B" -> "Berlin") res3: scala.collection.immutable.Map[java.lang.String,Berlin)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |