2014-03-03 62 views
3

如果有任何方法可以将字符串拆分为字符串数组,那么当您将一个符文数组作为分隔符时?有一个例子我想:如何通过符文阵列在GO中分割字符串?

seperators = {' ',')','('} 
SomeFunction("my string(qq bb)zz",seperators) => {"my","string","qq","bb","zz"} 

回答

10

例如,

package main 

import (
    "fmt" 
    "strings" 
) 

func split(s string, separators []rune) []string { 
    f := func(r rune) bool { 
     for _, s := range separators { 
      if r == s { 
       return true 
      } 
     } 
     return false 
    } 
    return strings.FieldsFunc(s, f) 

} 

func main() { 
    separators := []rune{' ', ')', '('} 
    s := "my string(qq bb)zz" 
    ss := split(s, separators) 
    fmt.Printf("%q\n", s) 
    fmt.Printf("%q\n", ss) 
} 

输出:

"my string(qq bb)zz" 
["my" "string" "qq" "bb" "zz"] 
+0

非常酷!我不知道这种方法存在。 – Lander