作业 - 为数组添加分割功能
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 }