在 Golang 字符串中计算相同单词的数量
在许多应用程序中,计算单词在字符串中出现的次数是非常重要的。这可以用于生成单词频率统计,分析文本数据和许多其他任务。在本文中,我们将探讨如何计算 Golang 字符串中重复单词的数量。
第一步:将字符串转换为单词数组
计算重复单词的第一步是将字符串转换为单词数组。这可以使用 strings.Split() 函数完成,该函数根据分隔符将字符串拆分为子字符串数组。
例如,考虑以下字符串 –
str := "the quick brown fox jumps over the lazy dog"
要将此字符串转换为单词数组,可以使用以下代码 –
words := strings.Split(str, " ")
这将把字符串拆分为单词数组,其中数组中的每个元素都是一个单独的单词。
第二步:创建一个 Map 来存储单词计数
下一步是创建一个 Map 来存储每个单词的计数。在 Golang 中,Map 是一种内置数据结构,允许我们存储键值对。我们可以使用 Map 存储每个单词的计数,其中键是单词,值是计数。
我们可以使用以下代码创建一个空的 Map –
wordCount := make(map[string]int)
这将创建一个具有字符串键和整数值的空 Map。
第三步:计算每个单词的出现次数
一旦我们有了单词数组和空 Map,我们就可以迭代数组中的每个单词,并增加映射中相应键的计数。
for _, word := range words {
_, exists := wordCount[word]
if exists {
wordCount[word] += 1
} else {
wordCount[word] = 1
}
}
这段代码迭代 words 数组中的每个单词,并检查单词是否存在于 wordCount Map 中作为键。如果单词存在,则将该键的计数加 1。如果单词不存在,则将单词添加为新键到 Map 中,并将计数设置为 1。
第四步:打印结果
最后,我们可以打印单词计数的结果。我们可以使用 for 循环迭代 wordCount Map 中的键和值,并打印每个键值对。
for key, value := range wordCount {
fmt.Printf("%s: %d\n", key, value)
}
这段代码迭代 wordCount Map 中的每个键值对,并将键和值打印到控制台。
整合所有部分
这是计算 Golang 字符串中重复单词的完整代码 –
示例
package main
import (
"fmt"
"strings"
)
func main() {
str := "the quick brown fox jumps over the lazy dog"
words := strings.Split(str, " ")
wordCount := make(map[string]int)
for _, word := range words {
_, exists := wordCount[word]
if exists {
wordCount[word] += 1
} else {
wordCount[word] = 1
}
}
for key, value := range wordCount {
fmt.Printf("%s: %d\n", key, value)
}
}
输出
brown: 1
fox: 1
jumps: 1
over: 1
lazy: 1
dog: 1
the: 2
quick: 1
结论
在 Golang 字符串中计算重复单词的数量可以是许多应用程序的有用技术。通过将字符串拆分为单词数组,并使用 Map 存储每个单词的计数,我们可以快速地完成该任务。