当前位置: 首页 > 面试题库 >

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

松鸣
2023-03-14
问题内容

我想制定一个程序来找出一个字符串中有多少个单词,并用空格,逗号或其他字符分隔。然后再将总数相加。

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


问题答案:

更新: Xcode 10.2.x•Swift 5或更高版本

使用Foundation方法enumerateSubstrings(in: Range)并将设置设置.byWords为选项:

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"

var words: [Substring] = []
sentence.enumerateSubstrings(in: sentence.startIndex..., options: .byWords) { _, range, _, _ in
    words.append(sentence[range])
}
print(words) // "["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"]\n"
print(words.count)  // 79

或使用本机Swift 5的新Character属性isLetter和split方法:

let words =  sentence.split { !$0.isLetter }

print(words) // "["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"]\n"

print(words.count)  // 80

扩展StringProtocol以支持子字符串:

extension StringProtocol {
    var words: [SubSequence] { 
        return split { !$0.isLetter } 
    }
    var byWords: [SubSequence] {
        var byWords: [SubSequence] = []
        enumerateSubstrings(in: startIndex..., options: .byWords) { _, range, _, _ in
            byWords.append(self[range])
        }
        return byWords
    }
}
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", "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"]


 类似资料:
  • 本文向大家介绍使用MySQL计算字符串中的字符数,包括了使用MySQL计算字符串中的字符数的使用技巧和注意事项,需要的朋友参考一下 今天,我需要从一个表中获取一些数据,该表中另一个字符串中不止一个字符串出现。基本上,我需要从一个表中查找所有深度超过3级(即带有3个斜杠)的URL,但是意识到在MySQL中没有函数可以执行此操作。我找到了另一种方法,但它使我思考如何可能。 找到解决方案并不是很困难,我

  • 问题内容: 我正在做一个作业,在该作业中,我必须编写程序以读取用户的字符串,并打印出字符串中出现次数的字母。 例如,“ Hello world”应该打印出“ h = 1 e = 1 l = 3 o = 2 …等”,但是我只写“ hello world”和字母总数。 我不能使用hashmap函数,只能使用数组。有人可以给我一两个提示,提示如何从下面的书面代码继续进行操作以获得我的首选功能?我不完全了

  • 问题内容: 需要一些紧凑的代码来计算Java中字符串的行数。该字符串用或分隔。这些换行符的每个实例将被视为一个单独的行。例如 - 应该返回4。原型是 有人可以提供一组紧凑的陈述吗?我想在这里有一个解决方案,但是它太长了。谢谢。 问题答案:

  • 问题内容: 计算字符串中字符出现次数的最简单方法是什么? 例如,计算出现在其中的次数 问题答案: 返回sub范围中的子字符串不重叠的次数。可选参数并以片表示法解释。

  • 问题内容: 我需要计算一个字符在一个字符串中出现的次数。 例如,假设我的字符串包含: 我想找到逗号字符的数量,即3。以及沿逗号分割后的各个字符串的数量,即4。 我还需要验证每个字符串,即str1或str2或str3或str4不应超过15个字符。 问题答案: 我已经更新了这个答案。我喜欢更好地使用比赛的想法,但是比较慢: 如果您事先知道要搜索的内容,则使用正则表达式文字;如果不知道,则可以使用构造函

  • 问题内容: 我有一张这样的桌子: 我试图弄清楚如何返回在每个DESCRIPTION中出现一个字符串的次数。 因此,如果我想计算“值”出现的次数,则sql语句将返回以下内容: 有什么办法吗?我根本不想使用php,而只是mysql。 问题答案: 这应该可以解决问题: