1

次のことを行ういくつかのscalaコードを書きたい:-

["a#b","c#"] のリストを # より前の部分をキーとし、値が存在する場合は # より後の部分を値とするマップに変換します。

したがって、上記の配列の場合、マップは次のようになります。

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

これをscalaスタイルで表現する最もエレガントな方法は何ですか? また、null チェックは 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 に答える