作业 - 为数组添加分割功能

main.swift

1 import Foundation
2 
3 let str:NSString = "Hello&myworld&Hello"
4 
5 print(str.split("&"))
6 
7 print(str.split("myworld"))

extension.swift

 1 import Foundation
 2 
 3 extension NSString
 4 {
 5     func split(separator:String) -> [NSString]
 6     {
 7         //如果原字符串包含分割字符串则进行,否则进行 else
 8         if self .containsString(separator)
 9         {
10             //数组 arr 用来存储每次截取出来的串
11             var arr:[NSString]=[]
12             
13             //变量 str 存储每次截取后剩余的字符串部分,第一次赋值是被截取前的串
14             var str:NSString = self
15             
16             //如果字符串包含 separator ,将 separator 之前的字符串截取并存入数组,之后的字符串再次循环相同操作
17             //rangeOfString 判断要被截取的字符串是否包含 separator ,找到了就返回范围
18             while(str.rangeOfString(separator).toRange() != nil)
19             {
20                 //subRange 是 separator 的范围
21                 let subRange = str.rangeOfString(separator)
22                 
23                 //subStr 是截取被判断的字符串从开头到 separator 所在的位置
24                 let subStr = str.substringToIndex(subRange.location)
25                 
26                 arr.append(subStr)
27                 
28                 //新 str 是老 str 的 separator 的位置之后截取出来的
29                 str = str.substringFromIndex(subRange.location + subRange.length)
30             }
31             
32             //str 没有 separator 时,while 循环退出,这时将最后剩余字符串存入数组
33             if str != ""
34             {
35                 arr.append(str)
36             }
37             
38             return arr
39             
40         }else
41         {
42             return ["查无此字符串"]
43         }
44         
45     }
46 }

 

posted @ 2016-05-09 12:30  小样和牛牛  阅读(175)  评论(0编辑  收藏  举报