Conversion d'une chaîne en entier dans Scala

Suraj P 13 juin 2022
Conversion d'une chaîne en entier dans Scala

Cet article abordera la conversion d’une String en un integer dans Scala.

Utilisez la méthode toInt pour convertir une chaîne en entier dans Scala

En Scala, si nous voulons convertir une String en Integer, nous pouvons utiliser la méthode toInt. Il est disponible sur les objets String.

Syntaxe:

our_String.toInt

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

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

    }
}

Production:

1234
int

Nous avons utilisé la méthode toInt pour convertir la chaîne "1234" en entier, mais le problème avec le code ci-dessus est que si la chaîne n’est pas un entier pur, nous obtiendrons NumberFormatException comme dans l’exemple suivant production.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

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

    }
}

Production:

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

Il faut donc gérer cette exception à l’aide d’un bloc try-catch. Cet extrait de code suivant est une manière plus semblable à Java de convertir une chaîne en entier et de gérer l’exception.

Exemple de code :

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)

    }
}

Production:

0

La fonction toInt renvoie la valeur correcte si la chaîne peut être convertie (comme si l’entrée est "1234"); sinon, il retourne 0 s’il n’est pas possible de convertir (comme si l’entrée est "scala").

Prenons un autre exemple de conversion d’une chaîne en entier en utilisant Option[].

Exemple de code :

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)

    }
}

Production:

None

La fonction toInt renvoie Some(Int) si la chaîne peut être convertie (comme si l’entrée est "1234"); sinon, elle renvoie None s’il n’est pas possible de le convertir en entier.

Nous pouvons également écrire notre méthode Scala toInt et Try, Success et Failure.

Exemple de code :

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)

    }
}

Production:

Failure (java.lang.NumberFormatException: For input string: "scala")
Auteur: 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