Swift基础

Swift中如何判断字符是否为空串

2021-09-24  本文已影响0人  喔牛慢慢爬
一、前言

开发的过程中经常要判断字符串是否为空,包括包含多个空格的字符串,如" ",这个字符串在程序中也要判别为空串。那么如何判断字符串为空呢

二、系统提供的方法

可以用系统原生的方法判断

var text = "hello!"
//如果有字符返回false,如果没有字符返回true.但是如果字符串是空格或换行符,则认为存在字符返回false
text.isEmpty 
var text = "hello!"
//如果字符数大于0,则认为字符串不为空,如果字符数等于0,则认为字符串为空。但是如果字符串是空格或换行符,则 count会大于0,字符串不为空
text.count == 0 

可见以上两种方法无法处理text = " "text = "\n"这些形式的字符串,也就是说Swift认为" "不是空字串!

所以我们可以通过对String进行扩展其属性来实现,看下边。

三、对String的扩展方法

先来个测试代码

class ViewController: UIViewController {
    //text的值可以修改为:"","  "," 哈哈","\n"进行测试
    var text = "哈哈"
    override func viewDidLoad() {
        super.viewDidLoad()
        print("isEmpty:\(text.isEmpty)")
        print("count:\(text.count == 0)")
        print("isBlank:\(text.isBlank)")
        print("isReBlank:\(text.isReBlank)")
    }
}
extension String{
    /// 通过高阶函数allSatisfy,判断字符串是否为空串
    var isBlank:Bool{
        /// 字符串中的所有字符都符合block中的条件,则返回true
        let _blank = self.allSatisfy{
            let _blank = $0.isWhitespace
            print("字符:\($0) \(_blank)")
            return _blank
        }
        return _blank
    }
    ///通过裁剪字符串中的空格和换行符,将得到的结过进行isEmpty
    var isReBlank:Bool{
        let str = self.trimmingCharacters(in: .whitespacesAndNewlines)
        return str.isEmpty
    }
}

上一篇 下一篇

猜你喜欢

热点阅读