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)