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

时间:2015-05-13 17:47:56

标签: go split

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

>>> "string    with multiple      spaces".split()
['string', 'with', 'multiple', 'spaces']

如何在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)
    }
}

以上给出了

0 string
1 
2 
3 
4 with
5 multiple
6 
7 
8 
9 
10 
11 spaces

我想保存lst[0]lst[1]lst[2]lst[3]中的每个字符串。可以这样做吗?感谢

1 个答案:

答案 0 :(得分:8)

您正在寻找strings.Fields

func Fields(s string) []string
     

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

     

示例

fmt.Printf("Fields are: %q", strings.Fields("  foo bar  baz   "))
     

输出:

Fields are: ["foo" "bar" "baz"]