登录
首页 >  Golang >  Go问答

对相同文本进行切片并进行标记

来源:stackoverflow

时间:2024-03-25 15:27:19 478浏览 收藏

本文介绍了一种有效的方法来处理包含相同文本的字符串切片,将具有相同文本的字符串进行编号。该方法利用一个映射来记录每个字符串出现的次数,并在切片中附加编号后缀。代码采用 Go 语言实现,通过一个函数 `numberItems` 来完成编号任务,将输入切片转换为带有编号的切片。

问题内容

我有一个字符串切片,其中包含一些具有相同文本的元素,例如: [苹果、香蕉、苹果、同行、苹果] 我想做的是通过以下方式对具有相同文本的字符串的名称进行编号: [苹果、香蕉、苹果2、同行、苹果3] 我怎样才能在一段字符串中做到这一点?


正确答案


这应该以非常有效的方式解决您的问题:o(n) 包主要

import (
    "fmt"
    "strconv"
)
func main() {
    testStringSlice := []string{"apple", "banana", "apple", "peer", "apple"}
    outputStringSlice := numberItems(testStringSlice)
    fmt.Println(outputStringSlice)
}

func numberItems (arr []string) []string{
    m := make(map[string]int)
    for idx, item := range arr {
            if count, ok := m[item]; ok {
                    m[item] = count + 1
                    arr[idx] = item + strconv.Itoa(m[item])
            } else {
                    m[item] = 1
            }
    }
    return arr
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>