Convertir cadena a entero en Scala

Suraj P 13 junio 2022
Convertir cadena a entero en Scala

Este artículo abordará la conversión de un String a un integer en Scala.

Utilice el método toInt para convertir cadenas en enteros en Scala

En Scala, si queremos convertir un String en un Entero, podemos usar el método toInt. Está disponible en objetos String.

Sintaxis:

our_String.toInt

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val str = "1234"
        val number = str.toInt
        println(number)
        println(number.getClass)

    }
}

Producción :

1234
int

Usamos el método toInt para convertir la cadena "1234" en un número entero, pero el problema con el código anterior es que si la cadena no es un número entero puro, obtendremos NumberFormatException como en el siguiente ejemplo producción.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val str = "scala"
        val number = str.toInt
        println(number)
        println(number.getClass)

    }
}

Producción :

java.lang.NumberFormatException: For input string: "scala"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)

Así que tenemos que manejar esta excepción usando un bloque try-catch. El siguiente fragmento de código es una forma más parecida a la de Java de convertir una cadena en un número entero y manejar la excepción.

Código de ejemplo:

object MyClass {

    def toInt(str: String): Int =
    {
  try {
    str.toInt
  }
  catch {
    case ex: Exception => 0
  }
}

    def main(args: Array[String]) {

        val str = "scala"
        val number = toInt(str)
        println(number)

    }
}

Producción :

0

La función toInt devuelve el valor correcto si la cadena se puede convertir (como si la entrada fuera "1234"); de lo contrario, devuelve 0 si no es posible convertir (como si la entrada es "scala").

Veamos otro ejemplo de convertir una cadena en un número entero usando Option[].

Código de ejemplo:

object MyClass {

    def toInt(str: String): Option[Int] =
    {
  try {
    Some(str.toInt)
  }
  catch {
    case ex: Exception => None
  }
}

    def main(args: Array[String]) {

        val str = "scala"
        val number = toInt(str)
        println(number)

    }
}

Producción :

None

La función toInt devuelve Some(Int) si la cadena se puede convertir (como si la entrada fuera "1234"); de lo contrario, devuelve None si no es posible convertirlo a un número entero.

También podemos escribir nuestro método Scala toInt y Try, Sucess y Failure.

Código de ejemplo:

import scala.util.{Try, Success, Failure}

object MyClass {

def makeInt(str: String): Try[Int] = Try(str.trim.toInt)

    def main(args: Array[String]) {

        val str = "scala"
        val number = makeInt(str)
        println(number)

    }
}

Producción :

Failure (java.lang.NumberFormatException: For input string: "scala")
Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub