Scala で文字列を整数に変換する
Suraj P
2022年6月13日
この記事では、Scala で文字列
を整数
に変換する方法について説明します。
Scala で文字列を整数に変換する際に toInt
メソッドを使用する
Scala では、文字列を整数に変換する場合は、toInt
メソッドを使用できます。String
オブジェクトで使用できます。
構文:
our_String.toInt
サンプルコード:
object MyClass {
def main(args: Array[String]) {
val str = "1234"
val number = str.toInt
println(number)
println(number.getClass)
}
}
出力:
1234
int
toInt
メソッドを使用して文字列"1234"
を整数にキャストしましたが、上記のコードの問題は、文字列が純粋な整数でない場合、次の例のように NumberFormatException
が発生することです。出力。
サンプルコード:
object MyClass {
def main(args: Array[String]) {
val str = "scala"
val number = str.toInt
println(number)
println(number.getClass)
}
}
出力:
java.lang.NumberFormatException: For input string: "scala"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
したがって、try-catch
ブロックを使用してこの例外を処理する必要があります。この次のコードスニペットは、文字列を整数に変換して例外を処理する、より Java に似た
方法です。
サンプルコード:
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)
}
}
出力:
0
関数 toInt
は、文字列を変換できる場合(入力が"1234"
の場合など)に正しい値を返します。それ以外の場合、変換できない場合(入力が"scala"
の場合など)は 0
を返します。
Option[]
を使用して文字列を整数に変換する別の例を見てみましょう。
サンプルコード:
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)
}
}
出力:
None
関数 toInt
は、文字列を変換できる場合(入力が"1234"
の場合など)、Some(Int)
を返します。それ以外の場合、整数に変換できない場合はなし
を返します。
Scala の toInt
メソッドと Try
、Sucess
、および Failure
を作成することもできます。
サンプルコード:
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)
}
}
出力:
Failure (java.lang.NumberFormatException: For input string: "scala")