go語言中字符串分割


go語言中字符串的分割分以下幾種:

1、根據空格鍵進行分割

  方法:strings.Fields(s string) []string

    s:要分割的字符串

    返回結果為[]string

  例:  s:=" ab cd          ef gh ij kl "

      arr:=strings.Fields(s)

      fmt.Printf("arr:%q\n",arr)

  結果為:arr:["ab" "cd" "ef" "gh" "ij" "kl"]

  注: 1、分割結果是不包含空字符串的,比如ab前面有一個空格,kl后面也有一個空格,但是分割的結果為 :["ab" "cd" "ef" "gh" "ij" "kl"],而並非: ["" "ab" "cd" "ef" "gh" "ij" "kl" ""]。分割長度為6,而並非是8

    2、如果要分割的字符串有多個連續空格出現的話也會,並不會進行多次分割,例如上例中cd和ef之間出現了多個連續空格,結果為: ["ab" "cd" "ef" "gh" "ij" "kl"],而並非:["ab" "cd" "" "" "" "" "ef" "gh" "ij" "kl"]

2、根據某個字符串對另一個字符串進行分割

  方法:strings.Split(s,sep string) []string

    s:要分割的字符串

    sep:要去掉的字符串

    返回結果為[]string

  例:  s:="iiaiibiiciiiidiiii"

      sep:="ii"

      arr:=strings.Split(s,sep)

      fmt.Println("arr:",arr)

  結果為:arr:["" "a" "b" "c" "" "d" "" ""]

  注:當sep=""時,會根據""進行分割,即結果為:arr:["i" "i" "a" "i" "i" "b" "i" "i" "c" "i" "i" "i" "i" "d" "i" "i" "i" "i"]

 3、根據單個字符進行分割

  方法: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="*a*b*",根據條件c=='*'分割,結果為["a" "b"],而非["" "a" "b" ""]






 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM