2 回答

TA貢獻1890條經驗 獲得超9個贊
你想要的東西不存在,據我所知。所以你只需要自己做:
package hello
func split(s string, sep rune, n int) (string, string) {
for i, sep2 := range s {
if sep2 == sep {
n--
if n == 0 {
return s[:i], s[i+1:]
}
}
}
return s, ""
}

TA貢獻1820條經驗 獲得超10個贊
我有一個字符串a_b_c_d_e。我想將它拆分為a_band c_d_e。
包中strings有一個Cut函數
// Cut slices s around the first instance of sep,
// returning the text before and after sep.
// The found result reports whether sep appears in s.
// If sep does not appear in s, cut returns s, "", false.
將函數的代碼分叉Cut為Cut2
package main
import (
"fmt"
"strings"
)
// Cut2 slices s around the second instance of sep,
// returning the text before and after sep.
// The found result reports whether sep appears twice in s.
// If sep does not appear twice in s, Cut2 returns s, "", false.
func Cut2(s, sep string) (before, after string, found bool) {
if i := strings.Index(s, sep); i >= 0 {
i += len(sep)
if j := strings.Index(s[i:], sep); j >= 0 {
i += j
return s[:i], s[i+len(sep):], true
}
}
return s, "", false
}
func main() {
s := "a_b_c_d_e"
fmt.Println(s)
fmt.Println(Cut2(s, "_"))
}
https://go.dev/play/p/6-OBBU70snQ
a_b_c_d_e
a_b c_d_e true
- 2 回答
- 0 關注
- 137 瀏覽
添加回答
舉報