为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串值更新map[string]int

从字符串值更新map[string]int

Go
元芳怎么了 2023-06-26 17:42:37
我正在尝试解析一个类似 json 的字符串,如下所示。"abc:9, bar:3"我希望最后得到的是map[string]int这样的:map[string]int{"abc":9, "bar":3}我已经将它分成一组“对”,如下所示:`[“abc:9”,“条:3”]我正在努力思考如何将这种结构带入决赛map[string]int。我尝试过在切片上进行范围调整,但我不知道如何将其实际放入地图中。        val := "abc:9, bar:3"        lsd := make(map[string]int)        c := strings.Split(val, ",")        for k, v := range c {            lsd = v[k] // where I am struggling, I know this is wrong, but I can't seem to find the proper syntax and tools for this        }谁能给我指出正确的方向,以最终得到我在这里寻找的map[string]int?
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

这有点俗气,但我在制作 fmt.Sscanf 时遇到了困难,所以我只是再次分裂。而你可能已经错过了strconv——strconv.Atoi一个快速转换器。


package main


import (

    "fmt"

    "strconv"

    "strings"

)


func main() {

    lsd := make(map[string]int)

    toParse := "abc:5, foo:5"

    parts := strings.Split(toParse, ", ")

    for _, p := range parts {


        results := strings.SplitN(p, ":", 2)

        val, err := strconv.Atoi(results[1])

        if err != nil {

            panic(err)  //probably want to do somethig better

        }

        lsd[results[0]] = val

    }


    fmt.Printf("%#v", lsd)

}

地图[字符串] int {“abc”:5,“foo”:5}


https://play.golang.org/p/UadibEzTXWU


查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信