如何在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”)