First, let's define an array of strings:
scala> val foo = Array("1", "2", "3")
foo: Array[java.lang.String] = Array(1, 2, 3)
The most obvious way would be to use Scala's toInt()
, available on strings:
Definition:
// StringLike.scala
def toInt: Int = java.lang.Integer.parseInt(toString)
(Note: toString
, defined elsewhere, simply converts the StringLike
object to a Java string)
Your code:
scala> foo.map(_.toInt)
res0: Array[Int] = Array(1, 2, 3)
Integer.valueOf()
also works, but notice you will get Array[Integer]
instead of Array[Int]
:
scala> foo.map(Integer.valueOf)
res1: Array[java.lang.Integer] = Array(1, 2, 3)
While we're at it, a for comprehension would work almost as well, except you'd be invoking toInt
yourself, instead of passing it over to map()
scala> for (i<-foo) yield i.toInt
res2: Array[Int] = Array(1, 2, 3)