如何将Go语言中的一个字符串切割成它包含的字符串数组?
例如,将字符串“abc”转换为数组“a”,“b”,“c”。
答案 0 :(得分:19)
使用conversion符文,例如
package main
import "fmt"
func main() {
s := "Hello, 世界"
for i, r := range s {
fmt.Printf("i%d r %c\n", i, r)
}
fmt.Println("----")
a := []rune(s)
for i, r := range a {
fmt.Printf("i%d r %c\n", i, r)
}
}
输出:
i0 r H
i1 r e
i2 r l
i3 r l
i4 r o
i5 r ,
i6 r
i7 r 世
i10 r 界
----
i0 r H
i1 r e
i2 r l
i3 r l
i4 r o
i5 r ,
i6 r
i7 r 世
i8 r 界
从链接:
将字符串类型的值转换为符文类型切片会生成包含字符串的各个Unicode代码点的切片。如果字符串为空,则结果为[]符文(nil)。
答案 1 :(得分:11)
使用strings.Split:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Printf("%#v\n",strings.Split("abc", ""))
}
答案 2 :(得分:4)
我认为Split
正是您所寻找的:
func Split(s, sep string) []string
如果sep
为空string
,则会将字符串拆分为单个字符:
将切片分割为由sep分隔的所有子字符串,并返回这些分隔符之间的子字符串切片。 如果sep为空,则在每个UTF-8序列后拆分。它相当于SplitN,计数为-1 。
答案 3 :(得分:2)
最简单的方法是拆分。
var userString = "some string to split"
newArr:= strings.Split(userString, "") // split on each char
fmt.Println(newArr[2]) // will print "m"