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