Во-первых, давайте определим массив строк:
scala> val foo = Array("1", "2", "3")
foo: Array[java.lang.String] = Array(1, 2, 3)
Самый очевидный способ - использовать toInt()
Scala, доступный для строк:
Определение:
// StringLike.scala
def toInt: Int = java.lang.Integer.parseInt(toString)
(Примечание: toString
, определенный в другом месте, просто преобразует объект StringLike
в строку Java)
Ваш код:
scala> foo.map(_.toInt)
res0: Array[Int] = Array(1, 2, 3)
Integer.valueOf()
также работает, но обратите внимание, вы получите Array[Integer]
вместо Array[Int]
:
scala> foo.map(Integer.valueOf)
res1: Array[java.lang.Integer] = Array(1, 2, 3)
Пока мы на этом, понимание будет работать почти так же хорошо, за исключением того, что вы сами вызовете toInt
вместо передачи его на map()
scala> for (i<-foo) yield i.toInt
res2: Array[Int] = Array(1, 2, 3)