Konvertieren von String in Integer in Scala
Dieser Artikel befasst sich mit der Umwandlung eines Strings
in eine Ganzzahl
in Scala.
Verwendung von die toInt
-Methode beim Konvertieren von String in Integer in Scala
Wenn wir in Scala einen String in eine Ganzzahl konvertieren möchten, können wir die Methode toInt
verwenden. Es ist für String
-Objekte verfügbar.
Syntax:
our_String.toInt
Beispielcode:
object MyClass {
def main(args: Array[String]) {
val str = "1234"
val number = str.toInt
println(number)
println(number.getClass)
}
}
Ausgabe:
1234
int
Wir haben die Methode toInt
verwendet, um die Zeichenfolge "1234"
in eine Ganzzahl umzuwandeln, aber das Problem mit dem obigen Code ist, dass wir, wenn die Zeichenfolge keine reine Ganzzahl ist, genau wie im folgenden Beispiel NumberFormatException
erhalten Ausgang.
Beispielcode:
object MyClass {
def main(args: Array[String]) {
val str = "scala"
val number = str.toInt
println(number)
println(number.getClass)
}
}
Ausgabe:
java.lang.NumberFormatException: For input string: "scala"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
Also müssen wir diese Ausnahme mit einem try-catch
-Block behandeln. Dieses nächste Code-Snippet ist eine eher Java-ähnliche
Methode, um einen String in eine Ganzzahl umzuwandeln und die Ausnahme zu behandeln.
Beispielcode:
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)
}
}
Ausgabe:
0
Die Funktion toInt
gibt den korrekten Wert zurück, wenn der String konvertiert werden kann (wie wenn die Eingabe "1234"
ist); andernfalls wird 0
zurückgegeben, wenn eine Konvertierung nicht möglich ist (z. B. wenn die Eingabe "scala"
ist).
Lassen Sie uns ein weiteres Beispiel für die Umwandlung eines Strings in eine Ganzzahl mit Option[]
haben.
Beispielcode:
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)
}
}
Ausgabe:
None
Die Funktion toInt
gibt Some(Int)
zurück, wenn der String konvertiert werden kann (wie wenn die Eingabe "1234"
ist); andernfalls gibt es None
zurück, wenn es nicht möglich ist, es in eine Ganzzahl umzuwandeln.
Wir können auch unsere Scala-Methode toInt
und Try
, Sucess
und Failure
schreiben.
Beispielcode:
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)
}
}
Ausgabe:
Failure (java.lang.NumberFormatException: For input string: "scala")