分割

//根据空格分割
strings.Fields(s string) []string

//根据自定义字符分割
strings.Split(s string,sep string) []string

// 返回值是 []string,使用 for 遍历
for i := 0; i < len([]string); i++ {
fmt.Println([]string[i])
}

//自定义分割func
strings.FieldsFunc(s string,f func(rune) bool) []string

s:要分割的字符串
f:自定义的分割规则函数,返回类型为bool类型
返回结果为[]string

例:  
f := func(c rune) bool {
 if c == '*' || c == '@'||c=='f'||c==' '||c=='二' {
   return true
 } else {
   return false
 }
}

s := "@a*b@@c**d## e$f二%ag*"
result := strings.FieldsFunc(s, f)
fmt.Printf("result:%q", result)

结果为:result:["a" "b" "c" "d##" "e$" "%ag"]

1、当连续出现多个符合条件的字符时当次分割只会进行一次,例如s=”a*b”或s=”a#b”,根据条件c==’‘或c==’‘||c==’#’进行分割时,结果为[“a” “b”],而非[“a” “” “b”]

2、当要分割的字符出现在s的首或者尾的时候可以忽略,例如s=”ab*”,根据条件c==’*’分割,结果为[“a” “b”],而非[“” “a” “b” “”]