用于字数计算的Swift字符串中的字数

我想创建一个过程来找出字符串中有多少个单词,用空格,逗号或其他字符分隔.然后将总数加起来.

我正在制作一个平均计算器,所以我想要数据的总数,然后将所有单词加起来.

解决方法

更新: 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
    }
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...