我是 galang 的新手,我想用嵌套地图连接字符串。下面是给出的虚拟代码,指出我的错误。提前致谢
import (
"fmt"
"strconv"
)
func main() {
str := "Hello @John martin #sosos &Hi @William "
var key string = ""
var ku int = 0
var kh int = 0
var kg int = 0
var id string
var col string
var retMap = make(map[string]map[string]string)
retMap[key] = make(map[string]string)
for i := 0; i < len(str); i++ {
//fmt.Println(string(str[i]), " >> ", str[i])
if str[i] == 64 || str[i] == 35 || str[i] == 38 {
if str[i] == 64 {
ku++
key = "user"
id = strconv.Itoa(ku)
} else if str[i] == 35 {
kh++
key = "hashTag"
id = strconv.Itoa(kh)
} else {
kg++
key = "group"
id = strconv.Itoa(kg)
}
retMap[key] = make(map[string]string) // If not assign here then it gives runtime error "panic: assignment to entry in nil map"
for j := i + 1; j < len(str); j++ {
col = col + string(str[j])
if str[j] == 32 {
j = len(str) - 1
retMap[key][id] = retMap[key][id] + col
col = " "
}
}
}
}
fmt.Println("Final String ",retMap)
}
输出:最终字符串 map[group:map[1: Hi] user:map[2: William] hashTag:map[1: sosos]]
预期输出:
最终字符串 map[group:map[1: Hi] user:map[1: John, 2: William] hashTag:map[1: sosos ]]
它可能是重复的
潇湘沐
相关分类