如何在Scala中将Option [String]转换为List [String]

时间:2016-04-01 19:02:29

标签: scala

如何将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");

1 个答案:

答案 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) }

(尽管如此,我认为将元组转换为列表更有意义。元组更好)。