Kotlin校驗字符串空值的幾個方法:
isNullOrEmpty : 爲空指針或者字串長度爲0時返回true,非空串與可空串均可調用。
isNullOrBlank : 爲空指針或者字串長度爲0或者全爲空格時返回true,非空串與可空串均可調用。
isEmpty : 字串長度爲0時返回true,只有非空串可調用。
isBlank : 字串長度爲0或者全爲空格時返回true,只有非空串可調用。
isNotEmpty : 字串長度大於0時返回true,只有非空串可調用。
isNotBlank : 字串長度大於0且不是全空格串時返回true,只有非空串可調用。
字符串聲明或者調用其他對象類型的方法,仍需要判斷空指針,如下代碼爲例:
//不能爲空
var age: String = "123"
//不能爲空,lateinit關鍵字可對非空屬性 延遲初始化
lateinit var age : String
//類型後面加?表示可爲空
var age1: String? = "23"
var age2: String? = null
//拋出空指針異常
val ages = age2!!.toInt()
//不做處理返回 null
val ages1 = age2?.toInt()
//age爲空返回-1
val ages2 = age2?.toInt() ?: -1
1、按照Java的寫作習慣
val ages = if (age != null) age.toInt() else -1
2、運算符 ?.
val ages = age?.toInt()
等價於 ages = if (age ! = null ) age.toInt() else null 。意味着返回值仍然可能爲空,如不想返回結果爲null,還需零做判斷。
3、運算符 ?:
val ages = age?.toInt() ?: -1
等價於 ages = if (age ! = null ) age.toInt() else -1。類似於java三元運算符“變量名=條件語句 ?取值A :取值B” 的縮寫,這樣可以確保返回值不爲null
4、運算符 !! 強行放棄非空判斷,使用時必須在確保執行對象非空
val ages = age !! .toInt()
爲了保障,最好添加異常捕獲處理
try {
val ages = age !! .toInt()
} catch ( e :Exception) {
}