在這個程序中,您將學習使用Kotlin中的if-else語句和函數(shù)來檢查字符串是空的還是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是一個空字符串。
我們還創(chuàng)建了一個函數(shù)isNullOrEmpty(),顧名思義,該函數(shù)檢查字符串是null還是空。 它使用!= null和string的isEmpty()方法進行null檢查來對其進行檢查
簡單地說,如果一個字符串不是null并且isEmpty()返回false,那么它既不是null也不是空。否則,是的。
但是,如果字符串只包含空白字符(空格),上面的程序不會返回empty。從技術上講,isEmpty()發(fā)現(xiàn)它包含空格并返回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()方法,它刪除給定字符串中的所有前導和末尾空白字符。
如果字符串只包含空格,函數(shù)返回true。
這是等效的Java代碼:檢查字符串為null還是empty的Java程序。