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