Go语言字符串中重复单词计数


在许多应用程序中,统计单词在一个字符串中出现的次数非常重要。这对于生成词频统计、分析文本数据以及许多其他任务都很有用。在本文中,我们将探讨如何统计Go语言字符串中重复单词的个数。

步骤1:将字符串转换为单词数组

统计重复单词的第一步是将字符串转换为单词数组。这可以使用strings.Split()函数完成,该函数根据分隔符将字符串分割成子字符串数组。

例如,考虑以下字符串:

str := "the quick brown fox jumps over the lazy dog"

要将此字符串转换为单词数组,可以使用以下代码:

words := strings.Split(str, " ")

这将把字符串分割成一个单词数组,数组中的每个元素都是一个单独的单词。

步骤2:创建映射来存储单词计数

下一步是创建一个映射来存储每个单词的计数。在Go语言中,映射是一种内置的数据结构,允许我们存储键值对。我们可以使用映射来存储每个单词的计数,其中键是单词,值是计数。

可以使用以下代码创建一个空映射:

wordCount := make(map[string]int)

这将创建一个键为字符串、值为整数的空映射。

步骤3:统计每个单词出现的次数

一旦我们有了单词数组和空映射,我们就可以遍历数组中的每个单词,并增加映射中对应键的计数。

for _, word := range words {
   _, exists := wordCount[word]
   if exists {
      wordCount[word] += 1
   } else {
      wordCount[word] = 1
   }
}

这段代码遍历words数组中的每个单词,并检查该单词是否作为键存在于wordCount映射中。如果单词存在,则将其键的计数加一。如果单词不存在,则将该单词作为新键添加到映射中,计数为一。

步骤4:打印结果

最后,我们可以打印单词计数的结果。我们可以使用for循环遍历wordCount映射中的键值对,并打印每个键值对。

for key, value := range wordCount {
   fmt.Printf("%s: %d\n", key, value)
}

这段代码遍历wordCount映射中的每个键值对,并将键和值打印到控制台。

整合代码

以下是Go语言字符串中重复单词计数的完整代码:

示例

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

结论

统计Go语言字符串中重复单词的个数对于许多应用程序来说是一种有用的技术。通过将字符串分割成单词数组并使用映射来存储每个单词的计数,我们可以快速地……

更新于:2023年4月7日

浏览量:1K+

开启你的职业生涯

完成课程获得认证

开始学习
广告