swift中字符串String的扩展(一)

本片文章只对String字符串做了一些简单扩展,目的是简化截取字符传中的某个字符或者某段字符串。文章末尾附上自己的一个小Demo

1.获取某个索引位置的字符

以下两个方法是从前往后查询某个索引对应的字符

	/// 获取字符串某个索引的字符(从前往后)
    /// - Parameter index: 索引值 是从0开始算的
    /// - Returns: 处理后的字符串
    func getCharAdvance(index: Int) -> String {
        assert(index < self.count, "哦呵~ 字符串索引越界了!")
        let positionIndex = self.index(self.startIndex, offsetBy: index)
        let char = self[positionIndex]
        return String(char)
    }
    
    /// 获取字符串第一个字符
    /// - Returns: 处理后的字符串
    func getFirstChar() -> String {
        return getCharAdvance(index: 0)
    }

以下两个方法是从后往前查询某个索引对应的字符

	/// 获取字符串某个索引的字符(从后往前)
    /// - Parameter index: 索引值
    /// - Returns: 处理后的字符串
    func getCharReverse(index: Int) -> String {
        assert(index < self.count, "哦呵~ 字符串索引越界了!")
        //在这里做了索引减1,因为endIndex获取的是 字符串最后一个字符的下一位
        let positionIndex = self.index(self.endIndex, offsetBy: -index - 1)
        let char = self[positionIndex]
        return String(char)
    }
    
    /// 获取字符串最后一个字符
    /// - Returns: 处理后的字符串
    func getLastChar() -> String {
        return getCharReverse(index: 0)
    }

2.获取字符串中某段字符串

	/// 获取某一串字符串按索引值
    /// - Parameters:
    ///   - start: 开始的索引
    ///   - end: 结束的索引
    /// - Returns: 处理后的字符串
    func getString(startIndex: Int, endIndex: Int) -> String {
        let start = self.index(self.startIndex, offsetBy: startIndex)
        let end = self.index(self.startIndex, offsetBy: endIndex)
        return String (self[start ... end])
    }
    
    /// 获取某一串字符串按数量
    /// - Parameters:
    ///   - startIndex: 开始索引
    ///   - count: 截取个数
    /// - Returns: 处理后的字符串
    func getString(startIndex: Int, count: Int) -> String {
        return getString(startIndex: startIndex, endIndex: startIndex + count - 1)
    }
    
    /// 截取字符串从某个索引开始截取
    /// - Parameter startIndex: 开始索引
    /// - Returns: 截取后的字符串
    func subStringFrom(startIndex: Int) -> String {
        return getString(startIndex: startIndex, endIndex: self.count - 1)
    }
    
    /// 截取字符串(从开始截取到想要的索引位置)
    /// - Parameter endIndex: 结束索引
    /// - Returns: 截取后的字符串
    func subStringTo(endIndex: Int) -> String {
        return getString(startIndex: 0, endIndex: endIndex)
    }

好了,本片文章就先分享到这里,有兴趣的同学可以查看Demo,如果您喜欢,别忘了给个Star哟,我也会不定期更新一些比较实用的String扩展。欢迎大家给我留言,说说您们自己的看法,我们一起进步,大家加油!!!

发布了18 篇原创文章 · 获赞 17 · 访问量 2750

猜你喜欢

转载自blog.csdn.net/qq_33463449/article/details/105344197