我是Kotlin的初学者,到目前为止我很喜欢它。我很好奇Kotlin是否有一个快速而简单的解决方案来检查用户输入/字符串是否空虚。我喜欢以下的功能:
"If readLine() is null or empty assign default value, else parse readLine()"
到目前为止,我提出的是:
var inp = readLine()
val double = if(inp.isNullOrEmpty()) 0.0 else inp.toDouble()
这是最好的吗?如果可能,我宁愿不存储原始用户输入字符串。谢谢你的帮助!
答案 0 :(得分:3)
您可以在此处使用toDoubleOrNull
:
val double: Double = readLine()?.toDoubleOrNull() ?: 0
如果readLine()
返回null
,那么readLine()?.toDoubleOrNull()
表达式也将返回null
,您将返回默认值。
如果readLine()
返回非空值,toDoubleOrNull
将尝试解析它,如果失败(例如,对于空字符串),它将返回null
,让你再次回到默认状态。
答案 1 :(得分:1)
fun main(args: Array<String>) {
val parsed = readLine()?.toDouble() ?: 0.0
}
?.
调用方法,否则它只是传递null。?:
表示如果它不为null,则返回左侧的值,否则返回右侧的值答案 2 :(得分:0)
该解决方案如何:
System.console().readLine()?.ifBlank { null } ?: "default string value"
,并输入密码(这在IntelliJ中不起作用):
String(System.console().readPassword()).ifBlank { "password" }