这可能是一个非常基本的问题,但在查看 strings 包文档后我无法找到答案。基本上,我想做的就是相当于:echo "hello world" | cut -d" " -f2
2 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
echo "hello world" | cut -d" " -f2
这"hello world"
使用空格作为分隔符来分割字符串,并仅选择第二部分(1 索引)。
在 Go 中,它strings.Split()
会返回一个切片,您可以根据需要对其进行索引或切片。
s := "hello world" fmt.Println(strings.Split(s, " ")[1])
这输出相同。在Go Playground上尝试一下。如果输入不能保证有 2 个部分,则上述索引 ( [1]
) 可能会出现混乱。在此之前检查切片的长度。
叮当猫咪
TA贡献1776条经验 获得超12个赞
有一个strings.Split()
函数可以在指定的子字符串处分割字符串。
还有函数Fields(s string) []string
, 和FieldsFunc(s string, f func(rune) bool) []string
。
前者以空格分割字符串,后者使用给定的函数来确定是否必须分割字符串。
Split
和的区别Fields
在于Fields
将多个连续的空格视为一个分割位置。strings.Fields(" foo bar baz "))
产量["foo" "bar" "baz"]
, 和strings.Split(" foo bar baz ", " ")
产量["" "" "foo" "bar" "" "baz" "" "" ""]
.
- 2 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消