📅  最后修改于: 2023-12-03 15:09:21.257000             🧑  作者: Mango
在Golang中,字符串对象有多种方法可以操作和处理字符串。其中一个常用的方法是FieldsFunc()函数,这个函数可以根据指定的回调函数对字符串进行分割,返回一个字符串的切片数组。
func FieldsFunc(s string, f func(rune) bool) []string
下面是一个使用FieldsFunc函数的例子,假设我们有一个字符串,内容是多个空格和逗号分隔的单词,我们希望将它们分割成一个切片数组。
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello, world foo bar"
fields := strings.FieldsFunc(str, func(c rune) bool {
return c == ',' || c == ' ' // 指定以逗号和空格作为分割规则
})
fmt.Println(fields)
}
输出结果:
[hello world foo bar]
在上面的例子中,我们指定以逗号和空格作为分割规则。实际上,回调函数可以指定任何分割规则。比如,你可以指定只要遇到非数字和非字母字符就作为分割点:
fields := strings.FieldsFunc(str, func(c rune) bool {
return !unicode.IsLetter(c) && !unicode.IsNumber(c)
})
或者只要遇到连续的数字就作为分割点:
fields := strings.FieldsFunc(str, func(c rune) bool {
return unicode.IsNumber(c)
})
在用FieldsFunc方法分割字符串时,需要注意以下几点:
因此,在使用FieldsFunc方法时,需要仔细考虑分割规则和处理逻辑,以确保得到正确的结果。