Golang中如何计算字符串的重复次数?

Golang中如何计算字符串的重复次数? 我需要查找字符串重复次数。例如 我返回了以下5个字符串值: “Success” “Success” “Success” “Failed” “Failed”

我需要统计Success和Failed的出现次数。

Success=3次 Failed=2次

谢谢

4 回复

谢谢 Britz

更多关于Golang中如何计算字符串的重复次数?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


到目前为止你尝试了什么?你目前的代码得到了什么结果,你期望得到什么结果?

最好在playground上发布一些sscce

你尝试过使用映射来进行计数吗? 试试这个:

func main() {
    counter := make(map[string]int)
    values := [5]string{"Success", "Success", "Success", "Failure", "Failure"}

    for _, element := range values {
	    counter[element] += 1
    }

    fmt.Println(counter["Success"])  // 3
    fmt.Println(counter["Failure"])  // 2
}

在Go语言中,可以通过使用map[string]int来统计字符串的重复次数。以下是一个完整的示例代码,演示如何实现这一需求:

package main

import "fmt"

func main() {
    // 定义字符串切片
    strings := []string{"Success", "Success", "Success", "Failed", "Failed"}
    
    // 创建map用于存储计数结果
    countMap := make(map[string]int)
    
    // 遍历字符串切片并计数
    for _, str := range strings {
        countMap[str]++
    }
    
    // 输出统计结果
    fmt.Printf("Success=%d次\n", countMap["Success"])
    fmt.Printf("Failed=%d次\n", countMap["Failed"])
}

运行结果:

Success=3次
Failed=2次

如果需要处理动态的字符串列表,可以使用以下更通用的版本:

package main

import "fmt"

func countStrings(strs []string) map[string]int {
    counts := make(map[string]int)
    for _, s := range strs {
        counts[s]++
    }
    return counts
}

func main() {
    strings := []string{"Success", "Success", "Success", "Failed", "Failed"}
    result := countStrings(strings)
    
    for key, value := range result {
        fmt.Printf("%s=%d次\n", key, value)
    }
}

运行结果:

Success=3次
Failed=2次

这种方法的时间复杂度为O(n),其中n是字符串的数量,能够高效地完成统计任务。

回到顶部