如何在Scala中将选项[String]转换为列表[String]

如何在Scala中将选项[String]转换为列表[String],scala,Scala,如何将选项[String]转换为列表[String] 我的选项[String]如下所示:Some(“value1,value2”) 我试过了,但没有成功 def convertOptionToList(a: Option[String]): List[String] = { return a.map(x => x.split(",").toList) } 最后我想要这样的东西:列表(“val1”、“val2”、“val3”) 将.toList移到您拥有的位置,然后在末尾添

如何将
选项[String]
转换为
列表[String]

我的
选项[String]
如下所示:
Some(“value1,value2”)

我试过了,但没有成功

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

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

  }

最后我想要这样的东西:列表(“val1”、“val2”、“val3”)

.toList
移到您拥有的位置,然后在末尾添加
.toList.flatten

a.map(_.split(",")).toList.flatten
或者,先执行
.toList
,然后执行
.flatMap
而不是
.map

a.toList.flatMap(_.split(","))
但是,如果它看起来确实像
Some(“value1”、“value2”)
,那么它就不是一个
选项[String]
。它是一个
选项[(字符串,字符串)]
选项中的元组是一对字符串。在这种情况下,请执行以下操作:

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

(虽然,我认为将元组转换为列表没有多大意义。元组更好)。

是的,但我想要的是列表[String],而不是选项[List[String]]您能添加一个完整的示例吗?我不太明白你是如何将
Some(“value1”、“value2”)
传递到
选项[String]
中的。我使用的是:val-params=request.queryString.map{case(k,v)=>k->v(0)。params.get(“params”)返回一个选项[String],这就是我需要这种转换的原因。我还可以有一些(“value1”、“value2”、“Value3”等)
a.toList.flatMap(u.split(“,”)
似乎不起作用我正在这样做:
val a:Option[String]=Some(“value1”,“value2”)a.toList.flatMap(u.split(“,”)
但是我得到了太多方法
apply
的参数。您正在将两个字符串传递给
Some
,应该是一个:
Some(“value1,value2”)