這可能是一個非常基本的問題,但在查看 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 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消