2016-08-18 6 views

Antwort

2

Beachten Sie neben Mhutters Antwort auch, dass Ihre Eingabe string wie ein JSON-Array aussieht (vielleicht stammt sie von einem JSON-Text?). Wenn Sie es so behandeln, können Sie den Inhalt in ein []int Segment entpacken. Dies wird nicht schneller sein, dass die Zahlen von ihr direkt Parsen (wie das encoding/json Paket Reflexion verwendet), aber es ist sicherlich einfacher:

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) 

Output (versuchen Sie es auf den Go Playground):

[156 100 713] 
[]int{156, 100, 713} 
2

Bei einem String

in := "[156, 100, 713]" 

Lassen Sie uns zunächst loswerden die eckigen Klammern:

trimmed := strings.Trim(in, "[]") 
//=> "156, 100, 713" 

Als nächstes teilen Sie die Zeichenfolge in eine Scheibe von Strings:

strings := strings.Split(trimmed, ", ") 
//=> []string{"156", "100", "713"} 

Jetzt können wir die Saiten zu Ints

ints := make([]int, len(strings)) 

for i, s := range strings { 
    ints[i], _ = strconv.Atoi(s) 
} 

fmt.Printf("%#v\n", ints) 
//=> []int{156, 100, 713} 

Weitere Informationen umwandeln sehen die go docs: https://devdocs.io/go/strings/index

Verwandte Themen