登录
首页 >  Golang >  Go问答

如何将复杂的字符串输入转换为mapstring?

来源:stackoverflow

时间:2024-05-01 23:15:34 440浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何将复杂的字符串输入转换为mapstring?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我想获取一个字符串,并将其转换为 map[string][]string。到目前为止,我已经能够将字符串转换为 map[string]string,如下所示:

package main

import(
 "fmt"
 "strings"
)

func main(){
    var m map[string]string
    var ss []string

    s := "owner.refobjectname: owner1, owner2, owner3&schedulestate:state1, state2"
    ss = strings.split(s, "&")

    m = make(map[string]string)
    for _, pair := range ss {
        z := strings.split(pair, ":")
        m[z[0]] = z[1]
    }
    fmt.println(m)
}

这给了我一个使用字符串键和字符串值的映射,如下所示:

map[owner.refobjectname: owner1, owner2, owner3 schedulestate:state1, state2]

但是,我需要将字符串值转换为字符串切片,因为我需要单独引用 owner1 等各个项目。简而言之,我希望最终的地图看起来像这样:

m := map[string][]string{
        "Owner.RefObjectName": {"Owner1", "Owner2", "Owner3"},
        "ScheduleState": {"State1", "State2"},
    }

其中 owner1 owner2 owner3 不在单个字符串中,而是在字符串切片中。


解决方案


沿逗号进一步拆分字符串:

var m map[string][]string
    // ...
    m = make(map[string][]string)
    for _, pair := range ss {
        obj := strings.Split(pair, ":")
        key := obj[0]
        v := strings.Split(obj[1], ",")
        m[key] = v
    }

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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