Swift5中如何判斷一個字符串是否爲空字符串

Swift5中如何判斷一個字符串是否爲空字符串

2019-11-03

轉自掘金社區-Lebusswift

Swift中判斷字串是否爲空有兩種方法:

"xx".isEmpty     // 推薦
"xx".count == 0  // 不推薦,由於須要遍歷,費資源

但isEmpty沒法判斷這種狀況:app

"   ".isEmpty  // false

這種所有是空格的字串也被判斷成了非空,也就是說Swift認爲" "不是空字串。post

在實際開發中咱們通常不但願這樣。spa

因此能夠給String加個擴展計算屬性:

extension String { 
    var isBlank: Bool { 
        let trimmedStr = self.trimmingCharacters(in: .whitespacesAndNewlines)
        return trimmedStr.isEmpty
    }
}

"  ".isBlank  // true

用到的兩個東西解釋一下:

1. trimmingCharacters

"xx".trimmingCharacters(...)

顧名思義,截取字符串。code

把字符串中的一些東西截掉,而後扔掉資源

截掉哪些東西呢?--在括號裏面的參數中規定開發

2. CharacterSet

"xx".trimmingCharacters(in: CharacterSet.xxx)

參數是個CharacterSet類型,顧名思義:字符集,也就是一堆字符的集合。文檔

就是說把咱們日常見到的單個字符按照必定的條件進行了分類,好比:字符串

CharacterSet.whitespacesAndNewlines  // 空格和換行符
CharacterSet.letters                 // 全部英文字母的集合...

他裏面有不少靜態方法,上面兩個就是,因此咱們能夠直接用CharacterSet.xxget

你們能夠去文檔尋找更多用法: developer.apple.com/documentati…

回正題:

trimmingCharacters截掉哪些字串呢,在這裏咱們是要截掉全部的空格和換行。

而後再把截掉後的字串用isEmpty來判斷,就能夠完美的排除用戶輸入空格的狀況了。

固然這是我本身總結的方法,若是你們還有更好的方法歡迎留言

相關文章
相關標籤/搜索