如何在Scala中将整个字符串列表转换为整数值

时间:2014-11-15 16:48:53

标签: scala

所以,我有一个像这样的字符串列表。

val x = List("12", "33", "77")

有没有办法将整个List转换为整数值,如下所示,而不使用for循环?

result == List(12, 33, 77)

2 个答案:

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