示例输入:(类型:string
)
"[156, 100, 713]"
转换示例:(类型:int
切片)
[156, 100, 713]
答案 0 :(得分:3)
给定一个字符串
in := "[156, 100, 713]"
首先,让我们摆脱方括号:
trimmed := strings.Trim(in, "[]")
//=> "156, 100, 713"
接下来,将字符串拆分为一串字符串:
strings := strings.Split(trimmed, ", ")
//=> []string{"156", "100", "713"}
现在我们可以将字符串转换为整数
ints := make([]int, len(strings))
for i, s := range strings {
ints[i], _ = strconv.Atoi(s)
}
fmt.Printf("%#v\n", ints)
//=> []int{156, 100, 713}
有关详细信息,请参阅go docs:https://devdocs.io/go/strings/index
答案 1 :(得分:2)
除了mhutter的回答之外,还要注意你的输入string
看起来像一个JSON数组(也许是来自JSON文本?)。
如果您这样对待,可以将其内容解组为[]int
切片。直接从中解析数字并不会更快(因为encoding/json
包使用反射),但它肯定更简单:
s := "[156, 100, 713]"
var is []int
if err := json.Unmarshal([]byte(s), &is); err != nil {
panic(err)
}
fmt.Println(is)
fmt.Printf("%#v", is)
输出(在Go Playground上尝试):
[156 100 713]
[]int{156, 100, 713}