英文:
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),例如
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)
。
英文:
Use a conversion to runes, for example
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)
}
}
Output:
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 界
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对其进行拆分:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Printf("%#v\n", strings.Split("abc", ""))
}
http://play.golang.org/p/1tNfu0iyHS
英文:
Use strings.Split on it:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Printf("%#v\n",strings.Split("abc", ""))
}
答案3
得分: 12
我认为Split
是你要找的:
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:
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
最简单的方法是分割字符串。
var userString = "some string to split"
newArr := strings.Split(userString, "") // 按每个字符进行分割
fmt.Println(newArr[2]) // 将打印出 "m"
英文:
The easiest way is to split.
var userString = "some string to split"
newArr:= strings.Split(userString, "") // split on each char
fmt.Println(newArr[2]) // will print "m"
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论