当前位置: > > > > 如何将复杂的字符串输入转换为mapstring?
如何将复杂的字符串输入转换为mapstring?
来源:stackoverflow
2024-05-01 23:15:34
0浏览
收藏
学习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的相关知识,也可关注米云公众号。
