将字符串切成字母

时间:2013-09-01 08:40:49

标签: string go

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

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

4 个答案:

答案 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)
        }
}

Playground


输出:

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", ""))
}

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

答案 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"