1

我想编写一些执行以下操作的scala代码:-

将 ["a#b","c#"] 列表转换为映射,其中 # 之前的部分作为键,如果值存在,# 之后的部分作为值。

因此,对于上述数组,地图将是:

{
 "a" => "b" // no "c" because it does not have a value.
}

用 scala 风格表达这一点的最优雅的方式是什么?另外,如何在 scala 中执行空检查?

谢谢!

4

1 回答 1

2
scala> val list = List("a#b", "c", "d#e", "")

scala> list.map(x => x.split("#")).filter(_.size == 2).map(arr => (arr(0), arr(1))).toMap
res1: scala.collection.immutable.Map[String,String] = Map(a -> b, d -> e) 
于 2013-11-06T00:08:16.363 回答