在这个程序中,您将学习使用Kotlin中的if-else语句和函数来检查字符串是空的还是null。
fun main(args: Array<String>) {
val str1: String? = null
val str2 = ""
if (isNullOrEmpty(str1))
println("str1是null或空.")
else
println("str1不为null或为空。")
if (isNullOrEmpty(str2))
println("str2是null或空。")
else
println("str2不为null或为空。")
}
fun isNullOrEmpty(str: String?): Boolean {
if (str != null && !str.isEmpty())
return false
return true
}运行该程序时,输出为:
str1是null或空。 str2是null或空。
在上面的程序中,我们有两个字符串str1和str2。str1包含null值,str2是一个空字符串。
我们还创建了一个函数isNullOrEmpty(),顾名思义,该函数检查字符串是null还是空。 它使用!= null和string的isEmpty()方法进行null检查来对其进行检查
简单地说,如果一个字符串不是null并且isEmpty()返回false,那么它既不是null也不是空。否则,是的。
但是,如果字符串只包含空白字符(空格),上面的程序不会返回empty。从技术上讲,isEmpty()发现它包含空格并返回false。对于带有空格的字符串,我们使用string方法trim()来修剪所有前导和末尾的空格字符。
fun main(args: Array<String>) {
val str1: String? = null
val str2 = " "
if (isNullOrEmpty(str1))
println("str1是null或空。")
else
println("sstr2不为null或空。")
if (isNullOrEmpty(str2))
println("str2是null或空。")
else
println("str2不为null或为空。")
}
fun isNullOrEmpty(str: String?): Boolean {
if (str != null && !str.trim().isEmpty())
return false
return true
}运行该程序时,输出为:
str1是null或空。 str2是null或空。
在isNullorEmpty()中,我们添加了一个额外的trim()方法,它删除给定字符串中的所有前导和末尾空白字符。
如果字符串只包含空格,函数返回true。
这是等效的Java代码:检查字符串为null还是empty的Java程序。