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

要求
为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值