📜  计算 Golang 字符串中重复单词的数量(1)

📅  最后修改于: 2023-12-03 15:41:36.723000             🧑  作者: Mango

计算 Golang 字符串中重复单词的数量

你有没有遇到过需要计算字符串中重复单词的情况?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,因为单词 helloworld 都出现了两次。

上面的 countDuplicateWords 函数是一个非常简单的例子,它只计算了重复单词的数量。但是,你可以根据需要对其进行扩展,以执行其他操作,如计算每个单词的出现次数等。

总之,使用 Golang 计算字符串中重复单词的数量是非常简单的。只需将字符串分割成单词,使用 map 记录每个单词的出现次数,并统计出现次数大于 1 的单词数量即可。