如何将 Go 语言中的一个字符串切成它包含的字符串字母数组?
例如,将字符串“abc”转换为数组“a”、“b”、“c”。
例如,使用符文转换
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 界
从链接:
将字符串类型的值转换为 runes 类型的切片会产生一个切片,其中包含字符串的各个 Unicode 代码点。如果字符串为空,则结果为 []rune(nil)。
使用 strings.Split 就可以了:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Printf("%#v\n",strings.Split("abc", ""))
}
我认为Split
这是您正在寻找的:
func Split(s, sep string) []string
如果sep
为空string
,它会将字符串拆分为单个字符:
将切片 s 拆分为由 sep 分隔的所有子字符串,并返回这些分隔符之间的子字符串切片。如果 sep 为空,Split 在每个 UTF-8 序列之后拆分。它等效于具有 -1 计数的 SplitN。
最简单的方法是拆分。
var userString = "some string to split"
newArr:= strings.Split(userString, "") // split on each char
fmt.Println(newArr[2]) // will print "m"