Scala で文字列を整数に変換する

Suraj P 2022年6月13日
Scala で文字列を整数に変換する

この記事では、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 メソッドと TrySucess、および 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")
著者: 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