2016-04-01 15 views
0

Option [String]をList [String]に変換する方法はありますか?Option [String]をScalaのList [String]に変換する方法

マイオプション[文字列]は次のようになります。いくつかの(「VALUE1」、「値2」)

私はこれを試してみましたが、最後にはありません成功

def convertOptionToList(a: Option[String]): List[String] = { 

    return a.map(x => x.split(",").toList) 

    } 

で私はこのような何かをしたいです:リスト( "val1"、 "val2"、 "val3");

a.toList.flatMap(_.split(",")) 

しかし、それならば本当に:やる.toList最初に、次に.flatMap代わり.mapの、また

a.map(_.split(",")).toList.flatten 

+0

はい、でも、私がしたいのはリスト[文字列]ではなく、オプション[リスト[文字列]]ではない – user708683

+0

完全な例を追加できますか? 'Some(" value1 "、" value2 ")'を 'Option [String]'に渡しているかどうかは分かりません。 –

答えて

4

あなたはそれを持ってどこ.toListを削除し、そして最後に.toList.flattenを追加Some("value1","value2")のように見える場合は、最初はOption[String]ではありません。 Option[(String, String)]です。 Optionの内部のタプルは、文字列のペアです。この場合には、これを実行します。

a.toList.flatMap { case (a,b) => Seq(a,b) } 

(私はそれがリストにタプルを変換するために非常に理にかなっているとは思わない、けれどもタプルが優れています。)。

+0

あなたは最高のディマです。 – user708683

+0

私は使用しています:val params = request.queryString.map {case(k、v)=> k - > v(0)。 params.get( "params")はOption [String]を返すので、そのような変換が必要です。私はSome( "value1"、 "value2"、 "Value3"など)を持つこともできます。 – user708683

関連する問題