📅  最后修改于: 2023-12-03 15:41:36.723000             🧑  作者: Mango
你有没有遇到过需要计算字符串中重复单词的情况?Golang 提供了一种非常方便的方法来解决这个问题。
我们可以使用 strings.Fields()
函数将字符串分割成单词,并使用 map
来记录单词出现的次数。最后,我们可以迭代 map
并计算单词出现的次数大于1的数量即可。
func countDuplicateWords(s string) int {
words := strings.Fields(s)
wordCount := make(map[string]int)
for _, word := range words {
wordCount[word]++
}
count := 0
for _, c := range wordCount {
if c > 1 {
count++
}
}
return count
}
在上面的代码中,我们首先使用 strings.Fields()
函数将字符串 s
分割成单词并将其存储在 words
数组中。
接下来,我们创建一个 map
,并将每个单词作为键,出现的次数作为值。循环结束后,我们就可以得到一个记录所有单词出现次数的 map
。
最后,我们需要统计单词出现次数大于 1 的数量。因为这些单词是重复的,所以我们只需要统计它们的数量即可。
现在,我们可以测试一下我们的函数,看看它是否可以正确地计算字符串中的重复单词数量:
s := "hello world hello world hello"
count := countDuplicateWords(s)
fmt.Println(count) // 2
在上面的示例中,我们将字符串 s
传递给 countDuplicateWords
函数,并预期结果为 2
,因为单词 hello
和 world
都出现了两次。
上面的 countDuplicateWords
函数是一个非常简单的例子,它只计算了重复单词的数量。但是,你可以根据需要对其进行扩展,以执行其他操作,如计算每个单词的出现次数等。
总之,使用 Golang 计算字符串中重复单词的数量是非常简单的。只需将字符串分割成单词,使用 map
记录每个单词的出现次数,并统计出现次数大于 1 的单词数量即可。