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

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

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

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

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

例如,考虑以下字符串 –

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

将这个字符串转换成一个单词数组,我们可以使用以下代码 –

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

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

步骤2:创建一个用于存储词频的映射

下一步是创建一个映射(map)以存储每个词的频率。在Golang中,映射是一种内置的数据结构,允许我们存储键值对。我们可以使用映射来存储每个词的频率,其中键是词,值是频率。

我们可以使用以下代码创建一个空的映射-

wordCount := make(map[string]int)

这将创建一个空地图,其中键为字符串,值为整数。

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

一旦我们有了单词数组和空地图,我们就可以在数组中迭代每个单词,并在地图中增加相应键的计数。

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

这段代码通过迭代words数组中的每个单词,并检查该单词是否在wordCount映射中存在为键。若该单词存在,则将该键的计数增加1。若该单词不存在,则将该单词作为一个新的键添加到映射中,并将计数设置为1。

步骤4:打印结果

最后,我们可以使用for循环迭代wordCount映射中的键和值,并打印每个键值对。

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

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

将所有内容放在一起

以下是在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字符串中计算重复单词的数量可以成为许多应用程序中有用的技术。通过将字符串拆分为单词数组,并使用映射存储每个单词的计数,我们可以快速地进行计算。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程