在Java中,我們總是提醒我們使用myString.isEmpty()
來檢查字符串是否爲空。但是,在Kotlin中,我發現您可以使用myString == ""
或myString.isEmpty()
甚至myString.isBlank()
。檢查Kotlin中的字符串是否爲空
有沒有關於此的任何指導方針/建議?還是僅僅是「任何事情都會讓你的船搖晃」?
預先感謝餵養我的好奇心。 :D
在Java中,我們總是提醒我們使用myString.isEmpty()
來檢查字符串是否爲空。但是,在Kotlin中,我發現您可以使用myString == ""
或myString.isEmpty()
甚至myString.isBlank()
。檢查Kotlin中的字符串是否爲空
有沒有關於此的任何指導方針/建議?還是僅僅是「任何事情都會讓你的船搖晃」?
預先感謝餵養我的好奇心。 :D
不要使用myString == ""
,在java中這將是myString.equals("")
這也不建議。
isBlank
與isEmpty
不一樣,它取決於您的使用情況。
isBlank
檢查char序列的長度是0還是所有索引都是空白。 isEmpty
只會檢查字符序列長度爲0
/**
* Returns `true` if this string is empty or consists solely of whitespace characters.
*/
public fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitespace() }
/**
* Returns `true` if this char sequence is empty (contains no characters).
*/
@kotlin.internal.InlineOnly
public inline fun CharSequence.isEmpty(): Boolean = length == 0
使用isEmpty
當你想測試一個字符串正好等於空字符串""
。
使用isBlank
當您要測試字符串爲空或僅包含空白(""
," "
)。請使用== ""
。
我很欣賞你把它放在很簡單。現在我只能給出一個無形的優惠,所以歡呼! :) – Aba
對於字符串? (可爲空字符串)數據類型,我用.isNullOrBlank()
對於字符串,我用.isBlank()
爲什麼?因爲大部分時間,我不希望允許帶空格的字符串(並且.isBlank()
檢查空字符串以及空字符串)。如果您不關心空白,請使用.isNullorEmpty()
和.isEmpty()
作爲字符串?和String。
我也想過總是使用isBlank(),但是你知道密碼實際上可能只是空格嗎?當然,這取決於你允許的。感謝您對可空字符串的提醒!這是一個看不見的優點。 :D – Aba
取決於情況,但我會假設大多數網站/後端將禁止使用唯一的空格密碼。再一次,我從來沒有嘗試過!但是對於極端邊緣情況+1 –
我絕對忘了'myString.equals(「」)'。我猜是因爲我從來沒有這麼做過,因爲我被告知不會。感謝提醒和明確的解釋! – Aba