swift中,想要把:
“wang ba”
分割为:
字符串数组
“wang”, “ba”
搜:
swift split string to array
参考:
最后自己实现了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //split string into string array, normally seperator is white space //if origin string not containing white space, then pass the empty string here, will split to every single char as string func splitSingleStrToStrArr(strToSplit:String, seperatorStr:String) -> [String] { print( "strToSplit=\(strToSplit), seperatorStr=\(seperatorStr)" ) var splitedStrArr:[String] = [String]() if !seperatorStr.isEmpty { let seperatorChar:Character = splitSingleStrToCharArr(seperatorStr)[0] splitedStrArr = strToSplit.characters.split(seperatorChar).map(String.init) } else { //split string(without space) into every single char as string let splitedCharArr:[Character] = splitSingleStrToCharArr(strToSplit) for eachChar in splitedCharArr { splitedStrArr.append(String(eachChar)) } } print( "splitedStrArr=\(splitedStrArr)" ) return splitedStrArr } |
调用效果:
1 2 3 4 5 6 7 8 9 10 11 12 | /* * splitSingleStrToStrArr demo */ let noneSeperatorStr:String = "" let strWithoutSpace:String = "中间没有空格单个字符串" let splitedStrArr_withoutSpace:[String] = splitSingleStrToStrArr(strWithoutSpace, seperatorStr: noneSeperatorStr) print( "splitedStrArr_withoutSpace=\(splitedStrArr_withoutSpace)" ) //["中", "间", "没", "有", "空", "格", "单", "个", "字", "符", "串"] let spaceSeperatorStr:String = " " let stringContainingSpace:String = "中 间 有 空 格 的 字 符 串 " let splitedStrArr_containingSpace:[String] = splitSingleStrToStrArr(stringContainingSpace, seperatorStr: spaceSeperatorStr) print( "splitedStrArr_containingSpace=\(splitedStrArr_containingSpace)" ) //["中", "间", "有", "空", "格", "的", "字", "符", "串"] |
最后演化为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | extension String { //split string into string array, normally seperator is white space //if origin string not containing white space, then pass the empty string here, will split to every single char as string func splitToStrArr(seperatorStr:String = "" ) -> [String] { guard self.notEmpty else { return [String]() } //print("strToSplit=\(strToSplit), seperatorStr=\(seperatorStr)") var splitedStrArr:[String] = [String]() if seperatorStr.notEmpty { let seperatorChar:Character = seperatorStr.splitToCharArr()[0] splitedStrArr = self.characters.split(seperatorChar).map(String.init) } else { //split string(without space) into every single char as string let splitedCharArr:[Character] = self.splitToCharArr() for eachChar in splitedCharArr { splitedStrArr.append(String(eachChar)) } } //print("splitedStrArr=\(splitedStrArr)") return splitedStrArr } } |
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | /* * splitToStrArr demo */ //let noneSeperatorStr:String = "" let strWithoutSpace:String = "中间没有空格单个字符串" //let splitedStrArr_withoutSpace:[String] = strWithoutSpace.splitToStrArr(noneSeperatorStr) let splitedStrArr_withoutSpace:[String] = strWithoutSpace.splitToStrArr() print( "splitedStrArr_withoutSpace=\(splitedStrArr_withoutSpace)" ) //["中", "间", "没", "有", "空", "格", "单", "个", "字", "符", "串"] let spaceSeperatorStr:String = " " let stringContainingSpace:String = "中 间 有 空 格 的 字 符 串 " let splitedStrArr_containingSpace:[String] = stringContainingSpace.splitToStrArr(spaceSeperatorStr) print( "splitedStrArr_containingSpace=\(splitedStrArr_containingSpace)" ) //["中", "间", "有", "空", "格", "的", "字", "符", "串"] |
注:这类函数已整理至我的库:
转载请注明:在路上 » [已解决]swift分割字符串为字符串数组