Swift5中如何判斷一個字符串是否爲空字符串(包含多個空格的狀況)

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

"xx".isEmpty  --推薦
"xx".count == 0  --不推薦,由於須要遍歷,費資源
複製代碼

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

" ".isEmpty  //false 
複製代碼

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

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

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

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

" ".isBlank  //true
複製代碼

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

1.trimmingCharacters

"xx".trimmingCharacters(...)
複製代碼

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

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

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

2.CharacterSet

"xx".trimmingCharacters(in: CharacterSet.xxx)
複製代碼

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

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

CharacterSet.whitespacesAndNewlines--空格和換行符
CharacterSet.letters--全部英文字母的集合
...
複製代碼

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

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

回正題:

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

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

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

 

廣告時間:

你們若是正好想學iOS開發的話,能夠來看看小弟的iOS視頻教程(永久更新+售後輔導): m.cctalk.com/inst/s9vfhe…

相關文章
相關標籤/搜索