go - `strings.split` 可以忽略空 token 吗?

标签 go

您能否演示一种有效的方法来使用 strings.split 以使返回的 slice 中不包含空标记?

具体来说,下面的代码返回 ["a""""b""c"] 我想让它返回 ["a""b""c"] :

fmt.Printf("%q\n", strings.Split("a,,b,c", ","))

https://play.golang.org/p/keaSjjSxgn

最佳答案

简答:strings.Split 做不到。

然而,Go 中有更多的函数可以分割字符串。值得注意的是,你可以用 strings.FieldsFunc 做你想做的事。 .这里的例子:

splitFn := func(c rune) bool {
        return c == ','
}
fmt.Printf("Fields are: %q\n", strings.FieldsFunc("a,,b,c", splitFn))

在 Playground 上:https://play.golang.org/p/Lp1LsoIxAK

关于go - `strings.split` 可以忽略空 token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798068/

相关文章:

json - 具有多个动态命名字段的 Golang Json 解码

json - 在 Go 中解析 JSON 文件

postgresql - Golang 将一片结构作为用户定义类型的数组传递给存储过程

postgresql - 尝试插入 postgresql 时 conn 关闭

arrays - 从golang中的mongodb检索非结构化数组

go - 如何在 Go 中使用位移运算符将两个 `uint8` 连接成一个 `uint16`?

go - 解析 GOPATH 值(Go 1.8+)

Golang 推断接口(interface)

c++ - 有人试过在 Windows 上编译 Go 吗?它现在似乎支持生成 PE 格式的二进制文件

go - 如何为 pq 驱动程序准备一个带有动态表名的 INSERT 语句