Go语言程序查找字符串中字符的频率
Go 语言中的字符串是字符的集合。由于 Go 中的字符串是不可变的,因此在生成后无法修改。但是,连接或添加到现有字符串可以创建新的字符串。字符的频率是指字符出现的次数。
语法
map()
为了跟踪输入字符串中每个字符出现的频率,下面的示例使用了 Go 中内置的 map 数据结构。map 是一个无序的键值对集合,具有唯一的键和可变类型的值。
func make ([] type, size, capacity)
Go 语言中的 make 函数用于创建数组/map,它接受要创建的变量类型、大小和容量作为参数。
算法
步骤 1 − 创建一个 package main 并声明 fmt(格式化包)包。
步骤 2 − 创建一个 main 函数,并在该函数中创建一个要计算字符频率的字符串。
步骤 3 − 使用用户定义或内部函数查找字符串中字符的频率。
步骤 4 − 使用 fmt.Println() 函数打印输出,其中 ln 表示换行。
示例 1
在本例中,我们将学习如何使用 map 查找字符串中字符的频率。这里,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 语句计算字符串中字符的频率。基本上,此条件语句将用于检查频率 map 中是否存在字符。
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。
广告