在这个程序中,您将学习使用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程序。