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

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

Golang中的字符串是一个字符的集合。由于Go中的字符串是不可改变的,所以在产生后不能修改。然而,串联或添加到现有的字符串中,可以创建新的字符串。一个字符的频率是指一个字符出现的次数。

语法

map()

为了跟踪每个字符在输入字符串中出现的频率,下面的例子中使用了Go中内置的map数据结构。地图是一个未经排序的键值对的集合,其键值是唯一的,值的类型是可变的。

func make ([] type, size, capacity)

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

算法

  • 第1步 – 创建一个包main并声明fmt(format package)包。

  • 第2步 – 创建一个主函数,并在该函数中创建一个字符串,其字符频率将被计算。

  • 第3步 – 使用用户定义的或内部的函数找到字符串中字符的频率。

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

例子1

在这个例子中,我们将学习如何使用map查找字符串中的字符频率。在这里,map将保存字符的频率,输出将是一张打印有每个字符频率的地图。

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。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程