Kotlin - “如果 readLine() 为 null 或为空,则分配默认值,否则解析 readLine()”

Tim*_*les 4 kotlin

我是 Kotlin 的初学者,到目前为止我很喜欢它。我很好奇 Kotlin 是否有一个快速简单的解决方案来检查用户输入/字符串是否为空。我想要以下功能:

"If readLine() is null or empty assign default value, else parse readLine()"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我想出的是:

var inp = readLine()
val double = if(inp.isNullOrEmpty()) 0.0 else inp.toDouble()
Run Code Online (Sandbox Code Playgroud)

这是最好的吗?如果可能,我宁愿不存储原始用户输入字符串。谢谢您的帮助!

zsm*_*b13 5

你可以toDoubleOrNull在这里使用:

val double: Double = readLine()?.toDoubleOrNull() ?: 0
Run Code Online (Sandbox Code Playgroud)

如果readLine()返回null,则readLine()?.toDoubleOrNull()表达式也将返回null,你会回到属于默认值。

如果readLine()返回一个非空值,toDoubleOrNull将尝试解析它,如果它失败(例如,对于一个空字符串),它将返回null,使您再次回退到默认值。