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