golang語言漸入佳境[23]-string分割類函式
string分割類函式
package main import ( "fmt" "strings" "unicode" ) /* 1、func Fields(s string) []string 將字串s以空白字元分割,返回一個切片 2、func FieldsFunc(s string, f func(rune) bool) []string 將字串s以滿足f(r)==true的字元分割,返回一個切片 3、func Split(s, sep string) []string 將字串s以sep作為分隔符進行分割,分割後字元最後去掉sep 4、func SplitAfter(s, sep string) []string 將字串s以sep作為分隔符進行分割,分割後字元最後附上sep 5、func SplitAfterN(s, sep string, n int) []string 將字串s以sep作為分隔符進行分割,分割後字元最後附上sep,n決定返回的切片數 6、func SplitN(s, sep string, n int) []string 將字串s以sep作為分隔符進行分割,分割後字元最後去掉sep,n決定返回的切片數 */ func main() { TestSplitAfterN() } func TestFields() { fmt.Println(strings.Fields("abc 123 ABC xyz XYZ")) //[abc 123 ABC xyz XYZ] } func TestFieldsFunc() { f := func(c rune) bool { //return c == '=' return !unicode.IsLetter(c) && !unicode.IsNumber(c) } fmt.Println(strings.FieldsFunc("abc@123*ABC&xyz%XYZ" , f)) //[abc 123 ABC xyz XYZ] } func TestSplit() { fmt.Printf("%q\n", strings.Split("a,b,c", ","))//[a b c] fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))//["" "man " "plan " "canal panama"] fmt.Printf("%q\n", strings.Split(" xyz ", ""))//[" " "x" "y" "z" " "] fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))//[""] } func TestSplitN() { fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 2))//["a""b,c"] fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 1))//["a,b,c"] } func TestSplitAfter() { fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))//["a," "b," "c"] } func TestSplitAfterN() { fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2))//["a,""b,c"] }
-
本文連結: ofollow,noindex">https://dreamerjonson.com/2018/11/30/golang-23-string-package2/
-
版權宣告: 本部落格所有文章除特別宣告外,均採用 CC BY 4.0 CN協議 許可協議。轉載請註明出處!