Golang 多分隔符字符串切割:SplitByMultipleSeparators 函数实现
在 Golang 中,可以使用 strings 包的 Split 函数进行字符串的切割。如果需要使用多个分隔符进行切割,可以使用 strings 包的 FieldsFunc 函数,结合一个自定义的函数来实现。
下面是一个示例代码,使用多个分隔符进行切割字符串:
package main
import (
"fmt"
"strings"
)
func main() {
str := 'a,b;c d-e/f'
separators := []string{',', ';', ' ', '-', '/'}
result := SplitByMultipleSeparators(str, separators)
fmt.Println(result)
}
func SplitByMultipleSeparators(str string, separators []string) []string {
// 定义一个匿名函数,用于判断字符是否为分隔符
isSeparator := func(c rune) bool {
for _, separator := range separators {
if strings.ContainsRune(separator, c) {
return true
}
}
return false
}
// 使用 FieldsFunc 函数进行切割,传入自定义的判断函数
result := strings.FieldsFunc(str, isSeparator)
return result
}
运行以上代码,输出结果为:
[a b c d e f]
在以上示例中,将字符串 'a,b;c d-e/f' 按照分隔符 ',; -/' 进行切割,得到的结果是一个切片 ['a', 'b', 'c', 'd', 'e', 'f']。判断是否为分隔符的逻辑在匿名函数 isSeparator 中实现,通过遍历分隔符列表,判断字符是否包含在其中来进行判断。然后,将判断函数传递给 FieldsFunc 函数,实现按照多个分隔符进行切割的功能。
原文地址: https://www.cveoy.top/t/topic/o9eC 著作权归作者所有。请勿转载和采集!