Golang 查找字符串中字符的频率

Golang 查找字符串中字符的频率

Golang中的字符串是字符的集合。由于Go中的字符串是不可变的,一旦生成就无法修改。然而,可以通过连接或添加到现有字符串来创建新的字符串。字符的频率表示字符出现的次数。

语法

map()

为了跟踪输入字符串中每个字符的出现频率,下面的示例中使用了Go语言中内置的map数据结构。该map是一个无序的键值对集合,具有唯一的键和值的可变类型。

func make ([] type, size, capacity)

在go语言中,make函数用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数。

步骤

  • 步骤1 − 创建一个main包并声明fmt(格式包)包。

  • 步骤2 − 创建一个main函数,在该函数中创建一个字符串,要计算其字符频率。

  • 步骤3 − 使用用户定义的或内部函数找出字符串中字符的频率。

  • 步骤4 − 使用fmt.Println()函数打印输出,其中ln表示换行。

示例1

在这个示例中,我们将学习如何使用映射在字符串中找到字符的频率。这里,映射将保存字符的频率,输出将是一个打印有每个字符频率的映射。

package main
import (
    "fmt"
)

func main() {
    mystr := "hello alexa" //create a string
    fmt.Println("The string given here is:", mystr)
    frequency := make(map[rune]int)  //create frequency map using make function

    for _, val := range mystr {
        frequency[val]++ //assign frequencies 
    }

    fmt.Println("The frequency of characters in the string is:")

    fmt.Println(frequency)  //print frequency map
}

输出

The string given here is: hello alexa
The frequency of characters in the string is:
map[120:1 104:1 101:2 108:3 111:1 32:1 97:2]

示例2

在这个示例中,我们将学习如何使用if-else语句计算字符串中字符的频率。基本上,这个条件语句将被用来检查频率映射中字符的存在。

package main
import (
    "fmt"
)

func main() {
    mystr := "hello alexa"  //create string
    fmt.Println("The string given here is:", mystr)
    frequency := make(map[rune]int)  //create frequency map using make function

    for _, val := range mystr {
        if _, ok := frequency[val]; ok {
            frequency[val]++
        } else {
            frequency[val] = 1  //assign frequencies
        }
    }
    fmt.Println("The frequency of characters in the string is:")

    fmt.Println(frequency) //print frequency map
}

输出

The string given here is: hello alexa
The frequency of characters in the string is:
map[97:2 120:1 104:1 101:2 108:3 111:1 32:1]

结论

我们使用两种方法执行了一个程序,用于打印字符串中字符的频率。在第一种方法中,我们使用了map函数,在第二个示例中,我们使用了if-else条件语句和map函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程