swift 3.0 基础练习 面向对象 类的扩展

写在前面
弄了下个人站...防止内容再次被锁定...所有东西都在这里面
welcome~
个人博客

要求
为NSString类添加split功能
为NSString类添加一个函数func split(splitStr: NSString)-> [NSString],split是把字符串以特定的字符或者字符串做为分割符将字符串分割的功能 (不用自带的分割功能)

extension NSString{
    
    //split是把字符串以特定的字符或者字符串做为分割符将字符串分割的功能
    func split(splitStr: NSString)-> [NSString] {
        
        //定义截取后的字符串
        var lastStr = self
        var res:[NSString] = []
        
        //遍历整个字符串,最坏的情况为 字符串全为同一个字符
        for _ in 0..<self.length {
 
            //获取splistStr在字符串中的位置
            let strRange = lastStr.range(of: splitStr as String)
            
            //判断长度 为0 则将截取后的字符串直接添加到结果数组中 
            //不为0 则继续截取
            if strRange.length != 0 {

                //从头一直截取到关键词
                let subStr = lastStr.substring(to: strRange.location)
                
                //添加到结果数组中
                res.append(subStr as NSString)
                
                //从关键词后开始截取
                lastStr = lastStr.substring(from: strRange.location + splitStr.length) as NSString
            }
            else{
                
                res.append(lastStr)
                //返回没有空值的结果
                return removeNullValue(str: res)
            }
        }
        return []
    }
    
    //移除空元素
    func removeNullValue(str:[NSString]) -> [NSString] {
        var res:[NSString] = []
        for i in 0..<str.count {
            if str[i] != "" {
                res.append(str[i])
            }
        }
        return res
    }
}

来测试下代码

var str = "helloaooaaaaaorld"

var result = str.split(splitStr: "ao")

print("result =  ",result)
exten.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,456评论 1 10
  • 基础部分(The Basics) 当推断浮点数的类型时,Swift 总是会选择Double而不是Float。 结合...
    gamper阅读 5,211评论 0 7
  • 三个月前的一个晚上,方槿从那家名叫“别哭”的酒吧出来的时候,时针刚好走到零点。她裹紧身上的米白色呢子大衣,看着天上...
    Kristen夏凉凉阅读 3,025评论 5 7
  • 22017年10月4日,如是家人李建英,第51天种种子日志 发心:我今不是为了我个人而闻思修行,而是为了六道轮回一...
    若嘉阅读 721评论 0 5
  • 转自:智联招聘 永远记得,世界上没有一件工作不辛苦,没有谁的职场是不委屈的,每个人活在世上都要承担属于你的那份苦和...
    萌丸1014阅读 2,515评论 0 1