Scala flatMap将字符串列表映射到整数列表

Scala flatMap将字符串列表映射到整数列表,scala,Scala,给定列表的字符串,例如: val list = List("1", "2") 我可以使用以下工具轻松地将它们转换为整数列表: list.map(_.toInt) 但是,如果字符串列表包含非整数,有没有办法在Scala中轻松填充它们 例如: val list = List("1", "2", "output") 使用上述映射(uu.toInt)将有一个例外: java.lang.NumberFormatException:对于输入字符串:“输出” 我尝试使用flatMap,但无法编译: :1

给定列表的字符串,例如:

val list = List("1", "2")
我可以使用以下工具轻松地将它们转换为整数列表:

list.map(_.toInt)
但是,如果字符串列表包含非整数,有没有办法在Scala中轻松填充它们

例如:

val list = List("1", "2", "output")
使用上述
映射(uu.toInt)
将有一个例外:

java.lang.NumberFormatException:对于输入字符串:“输出”

我尝试使用
flatMap
,但无法编译:

:13:错误:类型不匹配
找到:Int
必需:scala.collection.GenTraversableOnce[?]


Try
很好,但有时您希望避免异常

List("4","4g5","77").collect{case x if x.forall(_.isDigit) => x.toInt} 
//res0: List[Int] = List(4, 77)

以下是另一种解决方案:

val list: List[Char] = List('1', 'a', '2') 
list.filter(_.isDigit).map(_.asDigit.toInt)

OP询问的是字符串而不是字符,但我认为这将起作用
list.filter(u.forall(u.isDigit)).map(u.toInt)