如何在Swift中获取文本中真实单词的数量
发布时间:2020-12-14 05:26:41 所属栏目:百科 来源:网络整理
导读:参见英文答案 Number of words in a Swift String for word count calculation4个 编辑:已经存在类似于此问题的问题,但它是由特定字符分隔的数字( Get no. Of words in swift for average calculator).相反,这个问题是要获得文本中真实单词的数量,以各种方
参见英文答案 >
Number of words in a Swift String for word count calculation4个
编辑:已经存在类似于此问题的问题,但它是由特定字符分隔的数字( Get no. Of words in swift for average calculator).相反,这个问题是要获得文本中真实单词的数量,以各种方式分开:换行符,一些换行符,一个空格,一个空格等. 我想用Swift 3获取字符串中的单词数. 我正在使用这段代码,但是得到了不精确的结果,因为数字是计算空格和新行而不是有效字数. let str = "Architects and city planners,are ndesigning buildings to create a better quality of life in our urban areas." // 18 words,21 spaces,2 lines let components = str.components(separatedBy: .whitespacesAndNewlines) let a = components.count print(a) // 23 instead of 18
连续的空格和换行不会合并到一个通用的空白区域中,所以你只是在连续的空白字符之间得到一堆空的“单词”.通过过滤掉空字符串来摆脱这种情况:
let components = str.components(separatedBy: .whitespacesAndNewlines) let words = components.filter { !$0.isEmpty } print(words.count) // 17 以上将打印17因为您没有包含,作为分隔字符,所以字符串“planners,are”被视为一个单词. 您也可以通过向分隔符集添加标点字符来打破该字符串,如下所示: let chararacterSet = CharacterSet.whitespacesAndNewlines.union(.punctuationCharacters) let components = str.components(separatedBy: chararacterSet) let words = components.filter { !$0.isEmpty } print(words.count) // 18 现在你会看到像你期望的那样数到18. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |