2016-08-18 96 views

回答

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} 
2

给出一个字符串

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} 

欲了解更多信息,请参阅去文档:https://devdocs.io/go/strings/index