如何将Option[String]
转换为List[String]
?
我的Option[String]
看起来像这样:Some("value1,value2")
我试过这个但没有成功
def convertOptionToList(a: Option[String]): List[String] = {
return a.map(x => x.split(",").toList)
}
最后我想要这样的东西:List(" val1"," val2"," val3");
答案 0 :(得分:6)
删除您拥有的.toList
,并在结尾处添加.toList.flatten
:
a.map(_.split(",")).toList.flatten
或者,先.toList
,然后.flatMap
而不是.map
:
a.toList.flatMap(_.split(","))
但是,如果它看起来像Some("value1","value2")
,那么它不是Option[String]
。这是一个Option[(String, String)]
。 Option
内的元组是一对字符串。在这种情况下执行此操作:
a.toList.flatMap { case (a,b) => Seq(a,b) }
(尽管如此,我认为将元组转换为列表更有意义。元组更好)。