为了账号安全,请及时绑定邮箱和手机立即绑定

有没有像 linux cut 一样工作的 Go 函数?

有没有像 linux cut 一样工作的 Go 函数?

Go
沧海一幻觉 2023-08-07 15:07:15
这可能是一个非常基本的问题,但在查看 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]) 可能会出现混乱。在此之前检查切片的长度。


查看完整回答
反对 回复 2023-08-07
?
叮当猫咪

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" "" "" ""].


查看完整回答
反对 回复 2023-08-07
  • 2 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信