迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 Scala 中将字符串转换为整数

作者:迹忆客 最近更新:2023/03/24 浏览次数:

本文将解决在 Scala 中将 String 转换为 integer


在 Scala 中使用 toInt 方法将字符串转换为整数

在 Scala 中,如果我们想将 String 转换为 Integer,我们可以使用 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 返回 Some(Int)(例如输入是"1234");否则,如果无法将其转换为整数,则返回 None

我们还可以编写我们的 Scala toInt 方法和 TrySucessFailure

示例代码:

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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便