解决方法
更新:
Xcode 8.2.1•
Swift 3.0.2
let sentence = "I want to an algorithm that Could help find out how many words are there in a string separated by space or comma or some character. And then append each word separated by a character to an array which Could be added up later I'm making an average calculator so I want the total count of data and then add up all the words. By words I mean the numbers separated by a character,preferably space Thanks in advance" let wordList = sentence.components(separatedBy: .punctuationCharacters).joined().components(separatedBy: " ").filter{!$0.isEmpty} print(wordList) // [I,want,to,an,algorithm,that,Could,help,find,out,how,many,words,are,there,in,a,string,separated,by,space,or,comma,some,character,And,then,append,each,word,array,which,be,added,up,later,Im,making,average,calculator,so,I,the,total,count,of,data,and,add,all,By,mean,numbers,preferably,Thanks,advance]" print(wordList.count) // 79
extension String { var words: [String] { var words: [String] = [] enumerateSubstrings(in: startIndex..<endindex,options: .byWords) { word,_,_ in guard let word = word else { return } words.append(word) } return words } } print(sentence.words) // ["I","want","to","an","algorithm","that","Could","help","find","out","how","many","words","are","there","in","a","string","separated","by","space","or","comma","some","character","And","then","append","each","word","array","which","be","added","up","later","I'm","making","average","calculator","so","I","the","total","count","of","data","and","add","all","By","mean","numbers","preferably","Thanks","advance"]
Swift 2.x
let sentence = "I want to an algorithm that Could help find out how many words are there in a string separated by space or comma or some character. And then append each word separated by a character to an array which Could be added up later I'm making an average calculator so I want the total count of data and then add up all the words. By words I mean the numbers separated by a character,preferably space Thanks in advance" let wordList = sentence.componentsSeparatedByCharactersInSet(NSCharacterSet.punctuationCharacterSet()).joinWithSeparator("").componentsSeparatedByString(" ").filter{$0 != ""} print(wordList) // [I,advance]" print(wordList.count) // 79
问题是得到单词的计数,但是如果你需要这些单词,你可以使用这个扩展改编自Martin R在这个answer中建议的方法也能够处理撇号:
extension String { var words: [String] { var result:[String] = [] enumerateSubstringsInRange(characters.indices,options: .ByWords) { result.append($0.substring!) } return result } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。