所以,由于缺少像Long这样的方法。valueOf(字符串s)我卡住了。

如何将字符串转换为长在Kotlin?


当前回答

实际上,有几种方法:

考虑到:

var numberString : String = "numberString" 
// number is the Long value of numberString (if any)
var defaultValue : Long    = defaultValue

然后我们有:

+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString is a valid number ?            |  true    | false                 |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLong()                       |  number  | NumberFormatException |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull()                 |  number  | null                  |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() ?: defaultValue |  number  | defaultValue          |
+—————————————————————————————————————————————+——————————+———————————————————————+

其他回答

string.toLong()

其中字符串是变量。

string可以使用扩展方法将它们解析为其他基本类型。在下面的例子:

“真正的”toBoolean()。 “10 . 0”toFloat()。 “10 . 0”toDouble()。 “10”toByte(。) “10”toShort(。) “10”toInt(。) “10”请(。)

注:回答中提及喷气机。字符串过时。以下是当前的Kotlin (1.0):

Kotlin中的任何字符串都有一个扩展函数,可以调用toLong()。不需要什么特别的东西,就用它吧。

String的所有扩展函数都有文档。你可以在api参考中找到其他标准库

在Kotlin中,将String转换为Long(表示64位有符号整数)很简单。

你可以用下面的例子:

val number1: Long = "789".toLong()
println(number1)                                   // 789

val number2: Long? = "404".toLongOrNull()
println("number = $number2")                       // number = 404

val number3: Long? = "Error404".toLongOrNull()    
println("number = $number3")                       // number = null

val number4: Long? = "111".toLongOrNull(2)         // binary
println("numberWithRadix(2) = $number4")           // numberWithRadix(2) = 7

使用toLongOrNull()方法,可以在?之后使用let{}作用域函数。安全呼叫接线员。

这种逻辑适用于只使用非空值执行代码块。

fun convertToLong(that: String) {
    that.toLongOrNull()?.let {
        println("Long value is $it")
    }
}
convertToLong("123")                               // Long value is 123

String有相应的扩展方法:

"10".toLong()