得到类似python的split()使用go的字符串.Split()

lin*_*fan 4 split go

在python中,split()没有分隔符的函数会拆分空白/制表符等,并返回一个删除了所有空格的列表

>>> "string    with multiple      spaces".split()
['string', 'with', 'multiple', 'spaces']
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现类似的东西go呢?

package main

import "fmt"
import "strings"

func main() {
    s := "string    with multiple      spaces"
    lst := strings.Split(s, " ")
    for k, v := range lst {
        fmt.Println(k,v)
    }
}
Run Code Online (Sandbox Code Playgroud)

以上给出

0 string
1 
2 
3 
4 with
5 multiple
6 
7 
8 
9 
10 
11 spaces
Run Code Online (Sandbox Code Playgroud)

我想每个字符串保存在lst[0],lst[1],lst[2]lst[3].可以这样做吗?谢谢

Tim*_*per 8

您正在寻找strings.Fields:

func Fields(s string) []string
Run Code Online (Sandbox Code Playgroud)

Fields将字符串s拆分为一个或多个连续空白字符的每个实例,如unicode.IsSpace所定义,返回s的子字符串数组或空列表(如果s仅包含空格).

fmt.Printf("Fields are: %q", strings.Fields("  foo bar  baz   "))
Run Code Online (Sandbox Code Playgroud)

输出:

Fields are: ["foo" "bar" "baz"]
Run Code Online (Sandbox Code Playgroud)