Swift中判断字串是否为空有两种方法:
"xx".isEmpty --推荐
"xx".count == 0 --不推荐,因为需要遍历,费资源
但isEmpty无法判断这种情况:
" ".isEmpty //false
这种全部是空格的字串也被判断成了非空,也就是说Swift认为" "不是空字串。
在实际开发中我们一般不希望这样。
所以可以给String加个扩展计算属性:
extension String {
var isBlank: Bool {
let trimmedStr = self.trimmingCharacters(in: .whitespacesAndNewlines)
return trimmedStr.isEmpty
}
}
" ".isBlank //true
用到的两个东西解释一下:
1.trimmingCharacters
"xx".trimmingCharacters(...)
顾名思义,截取字符串。
把字符串中的一些东西截掉,然后扔掉
截掉哪些东西呢?--在括号里面的参数中规定
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…