如何在Go中字符串拆分空字符串

Pet*_*son 7 arrays string go

在Python中如果我这样做...:

parts = "".split(",")
print parts, len(parts)
Run Code Online (Sandbox Code Playgroud)

输出是:

[], 0
Run Code Online (Sandbox Code Playgroud)

如果我在Go ...中做同等的事情:

parts = strings.Split("", ",")        
fmt.Println(parts, len(parts))
Run Code Online (Sandbox Code Playgroud)

输出是:

[], 1
Run Code Online (Sandbox Code Playgroud)

如果没有任何内容,它的长度如何?

zmb*_*zmb 10

结果strings.Split是带有一个元素的切片 - 空字符串.

fmt.Println只是没有显示它.试试这个例子(注意最后一次打印的更改).

package main

import "fmt"
import "strings"

func main() {
    groups := strings.Split("one,two", ",")
    fmt.Println(groups, len(groups))
    groups = strings.Split("one", ",")
    fmt.Println(groups, len(groups))
    groups = strings.Split("", ",")
    fmt.Printf("%q, %d\n", groups, len(groups))
}
Run Code Online (Sandbox Code Playgroud)

游乐场链接

这是有道理的.如果您想"HelloWorld"使用,字符作为分隔符来拆分字符串,您希望结果"HelloWorld"与您的输入相同.