在 Go 语言中,标准库中的 strings 包并没有直接提供一个按照多个字符分割字符串的函数,类似于 C# 中的 split() 函数,该函数可以指定多个分隔符。但是,你可以通过一些组合函数和逻辑来实现相同的效果
// SplitByChars splits the string s by any of the characters in the separator slice.
func SplitByChars(s string, separators ...rune) []string {
var result []string
if separators == nil || len(separators) == 0 {
result = append(result, s)
return result
}
start := 0
for i, r := range s {
// 检查当前字符是否是分隔符之一
isSeparator := false
for _, sep := range separators {
if r == sep {
isSeparator = true
break
}
}
if isSeparator {
// 如果是分隔符,添加从开始到当前位置(不包括分隔符)的子字符串到结果切片
if start < i {
result = append(result, s[start:i])
}
// 更新起始位置为当前位置+1(即跳过分隔符)
start = i + 1
}
}
// 添加最后一个部分(如果存在)
if start < len(s) {
result = append(result, s[start:])
}
return result
}