zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    POJ 1887 Testing the CATCHER
    HDU 3374 String Problem
    HDU 2609 How many
    POJ 1509 Glass Beads
    POJ 1458 Common Subsequence
    POJ 1159 Palindrome
    POJ 1056 IMMEDIATE DECODABILITY
    POJ 3080 Blue Jeans
    POJ 1200 Crazy Search
    软件体系结构的艺术阅读笔记1
  • 原文地址:https://www.cnblogs.com/gongxiaokai/p/7123803.html
Copyright © 2011-2022 走看看