扩展swift字符串类型(String) trim方法

吴统威 on 编程语言 SWIFT | 2015-05-21 17:48:27.0

我们会经常在使用字符时,去掉字符串两边的空白字符,或者其他无用字符,在Java里面会经常使用trim方法,而在swift里面,没有这个方法,在swift里面使用

" 字符串 ".stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())

在这个文章里面,我们也来扩展String,给String扩展trim方法

let whitespaceAndNewlineChars: [Character] = ["\n", "\r", "\t", " "]

extension String {
    func rtrim() -> String {
        if isEmpty { return "" }
        var i = endIndex
        while i >= startIndex {
            i = i.predecessor()
            let c = self[i]
            if find(whitespaceAndNewlineChars, c) == nil {
                break
            }
        }
        return self[startIndex...i]
    }

    func ltrim() -> String {
        if isEmpty { return "" }
        var i = startIndex
        while i < endIndex {
            let c = self[i]
            if find(whitespaceAndNewlineChars, c) == nil {
                break
            }
            i = i.successor()
        }
        return self[i..<endIndex]
    }

    func trim() -> String {
        return ltrim().rtrim()
    }
}

希望对你们有帮助!