在 Scala 中将字符串转换为整数
Suraj P
2022年6月7日
本文将解决在 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
方法和 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")