在 Golang 字符串中计算相同单词的数量

在 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 存储每个单词的计数,我们可以快速地完成该任务。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程