2019-11-03轉自掘金社區-Lebusswift
"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
"xx".trimmingCharacters(...)
顧名思義,截取字符串。code
把字符串中的一些東西截掉,而後扔掉資源
截掉哪些東西呢?--在括號裏面的參數中規定開發
"xx".trimmingCharacters(in: CharacterSet.xxx)
參數是個CharacterSet
類型,顧名思義:字符集,也就是一堆字符的集合。文檔
就是說把咱們日常見到的單個字符按照必定的條件進行了分類,好比:字符串
CharacterSet.whitespacesAndNewlines // 空格和換行符 CharacterSet.letters // 全部英文字母的集合...
他裏面有不少靜態方法,上面兩個就是,因此咱們能夠直接用CharacterSet.xxget
你們能夠去文檔尋找更多用法: developer.apple.com/documentati…
讓trimmingCharacters
截掉哪些字串呢,在這裏咱們是要截掉全部的空格和換行。
而後再把截掉後的字串用isEmpty來判斷,就能夠完美的排除用戶輸入空格的狀況了。