如何在 Kotlin 中将字符串 (String) 转换为数字 (Long)?安全的方法和错误处理
大家好!我刚开始学习 Kotlin(从 Java 转过来),遇到了一个看似简单的任务。我需要从应用中的文本字段读取用户 ID(这是一个字符串),并将其传递给一个期望 Long 的函数。
在 Java 中,我通常使用 `Long.parseLong(str)` 或 `Long.valueOf(str)`,并用 try-catch 包裹。但在 Kotlin 中,我看到了几种不同的方法:`.toLong()`、`.toLongOrNull()`,还有一些扩展函数……我搞糊涂了,不知道哪个正确且安全。
下面是我的代码示例,现在会抛出异常:
```kotlin
fun main() {
val userInput: String = "123abc" // 用户不小心输入了字母
val userId: Long = userInput.toLong() // NumberFormatException!
println("User ID: $userId")
}
```
我明白需要处理错误,但希望以优雅的“Kotlin 风格”实现。另外,如果字符串可能是 `null` 或包含空格怎么办?有没有不会抛出异常的通用方法?