所以,我有一个像这样的字符串列表。
val x = List("12", "33", "77")
有没有办法将整个List转换为整数值,如下所示,而不使用for循环?
result == List(12, 33, 77)
答案 0 :(得分:4)
map
List
使用toInt
:
List("12", "33", "77").map(_.toInt)
或者更安全一点:
import scala.util.{Success, Try}
List("12", "33", "77", "bad").map(s => Try(s.toInt))
.collect { case Success(x) => x }
res2: List[Int] = List(12, 33, 77)
此外:
List("12", "33", "77", "bad").filter(_.matches("[0-9]+")).map(_.toInt)
res7: List[Int] = List(12, 33, 77)
答案 1 :(得分:2)
使用flatMap
优先util.Try
,
x.flatMap( s => Try(s.toInt) toOption )
res: List[Int] = List(12, 33, 77)