23

如何将 Go 语言中的一个字符串切成它包含的字符串字母数组?

例如,将字符串“abc”转换为数组“a”、“b”、“c”。

4

4 回答 4

29

例如,使用符文转换

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)。

于 2013-09-01T08:49:01.467 回答
21

使用 strings.Split 就可以了:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Printf("%#v\n",strings.Split("abc", ""))
}

http://play.golang.org/p/1tNfu0iyHS

于 2013-09-01T08:46:45.953 回答
11

我认为Split这是您正在寻找的:

func Split(s, sep string) []string

如果sep为空string,它会将字符串拆分为单个字符:

将切片 s 拆分为由 sep 分隔的所有子字符串,并返回这些分隔符之间的子字符串切片。如果 sep 为空,Split 在每个 UTF-8 序列之后拆分。它等效于具有 -1 计数的 SplitN

于 2013-09-01T08:46:31.230 回答
8

最简单的方法是拆分。

var userString = "some string to split"

newArr:= strings.Split(userString, "")       // split on each char 

fmt.Println(newArr[2])                       // will print "m"
于 2017-12-19T14:10:45.037 回答