将字符串切割成字母。

huangapple go评论193阅读模式
英文:

Slice string into letters

问题

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

例如,将字符串"abc"切割成数组"a", "b", "c"。

英文:

How to slice one string in Go language into array of string letters it contains?

For example, turn string "abc" into array "a", "b", "c".

答案1

得分: 31

使用转换为符文(runes),例如

  1. package main
  2. import "fmt"
  3. func main() {
  4. s := "Hello, 世界"
  5. for i, r := range s {
  6. fmt.Printf("i%d r %c\n", i, r)
  7. }
  8. fmt.Println("----")
  9. a := []rune(s)
  10. for i, r := range a {
  11. fmt.Printf("i%d r %c\n", i, r)
  12. }
  13. }

Playground


输出:

  1. i0 r H
  2. i1 r e
  3. i2 r l
  4. i3 r l
  5. i4 r o
  6. i5 r ,
  7. i6 r
  8. i7 r
  9. i10 r
  10. ----
  11. i0 r H
  12. i1 r e
  13. i2 r l
  14. i3 r l
  15. i4 r o
  16. i5 r ,
  17. i6 r
  18. i7 r
  19. i8 r

从链接中:

将字符串类型的值转换为符文(runes)切片类型会生成一个包含字符串中各个Unicode码点的切片。如果字符串为空,则结果为[]rune(nil)

英文:

Use a conversion to runes, for example

  1. package main
  2. import "fmt"
  3. func main() {
  4. s := "Hello, 世界"
  5. for i, r := range s {
  6. fmt.Printf("i%d r %c\n", i, r)
  7. }
  8. fmt.Println("----")
  9. a := []rune(s)
  10. for i, r := range a {
  11. fmt.Printf("i%d r %c\n", i, r)
  12. }
  13. }

Playground


Output:

  1. i0 r H
  2. i1 r e
  3. i2 r l
  4. i3 r l
  5. i4 r o
  6. i5 r ,
  7. i6 r
  8. i7 r
  9. i10 r
  10. ----
  11. i0 r H
  12. i1 r e
  13. i2 r l
  14. i3 r l
  15. i4 r o
  16. i5 r ,
  17. i6 r
  18. i7 r
  19. i8 r

From the link:

> Converting a value of a string type to a slice of runes type yields a slice containing the individual Unicode code points of the string. If the string is empty, the result is []rune(nil).

答案2

得分: 22

使用strings.Split对其进行拆分:

  1. package main
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. func main() {
  7. fmt.Printf("%#v\n", strings.Split("abc", ""))
  8. }

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

英文:

Use strings.Split on it:

  1. package main
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. func main() {
  7. fmt.Printf("%#v\n",strings.Split("abc", ""))
  8. }

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

答案3

得分: 12

我认为Split是你要找的:

  1. func Split(s, sep string) []string

如果sep是一个空的字符串,它会将字符串分割成单个字符:

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

英文:

I think Split is what you're looking for:

  1. func Split(s, sep string) []string

If sep is an empty string, it will split the string into single characters:

> Split slices s into all substrings separated by sep and returns a slice of the substrings between those separators. If sep is empty, Split splits after each UTF-8 sequence. It is equivalent to SplitN with a count of -1.

答案4

得分: 8

最简单的方法是分割字符串。

  1. var userString = "some string to split"
  2. newArr := strings.Split(userString, "") // 按每个字符进行分割
  3. fmt.Println(newArr[2]) // 将打印出 "m"
英文:

The easiest way is to split.

  1. var userString = "some string to split"
  2. newArr:= strings.Split(userString, "") // split on each char
  3. fmt.Println(newArr[2]) // will print "m"

huangapple
  • 本文由 发表于 2013年9月1日 16:40:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/18556693.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定