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")
