strings包
字符串操作通常是一种高频操作,在golang中专门提供了strings包来做这种工作。
Compare 方法
``比较两个字符串的字典序,返回值0表示a==b,-1表示a < b,1表示a > b.通常我们应该运算符==,<,>来比较连个字符串,代码更简介,意思更明细,效率也更高。
func Compare(a, b string) int
strings.Compare("a", "b") //-1
strings.Compare("a", "a") //0
strings.Compare("b", "a") //1
Contains 方法
Contains方法用来判断字符串s中是否包含子串substr
func Contains(s, substr string) bool
strings.Contains("seafood", "foo") //true
HasPrefix和HasSuffix方法
HasPrefix和HasSuffix用来判断字符串中是否包含包含前缀和后缀
func HasPrefix(s, prefix string) bool
func HasSuffix(s, suffix string) bool
strings.HasPrefix("Gopher", "Go") //true
strings.HasSuffix("Amigo", "go") //true
Index 方法和 LastIndex方法
Index返回子串sep在字符串s中第一次出现的位置,如果找不到,则返回 -1。
LastIndex返回子串sep在字符串s中最后一次出现的位置,如果找不到,则返回 -1。
func Index(s, substr string) int
func LastIndex(s, substr string) int
strings.Index("chicken", "ken") //4
strings.Index("chicken", "dmr") //-1
strings.Index("go gopher", "go") //0
strings.LastIndex("go gopher", "go") //3
strings.LastIndex("go gopher", "rodent") //-1
Join方法
Join将a中的子串连接成一个单独的字符串,子串之间用sep拼接
func Join(elems []string, sep string) string
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", ")) //foo, bar, baz
Repeat方法
Repeat将count个字符串s连接成一个新的字符串。
func Repeat(s string, count int) string
strings.Repeat("na", 2)//nana
Replace和ReplaceAll方法
Replace和ReplaceAll方法为字符串替换方法,Replace返回s的副本,并将副本中的old字符串替换为new字符串,替换次数为n次,如果n为 -1则全部替换。
func Replace(s, old, new string, n int) string
func ReplaceAll(s, old, new string) string
strings.Replace("oink oink oink", "k", "ky", 2) //oinky oinky oink
strings.Replace("oink oink oink", "oink", "moo", -1) // moo moo moo
strings.ReplaceAll("oink oink oink", "oink", "moo") // moo moo moo 功能同上
Split 方法
Split方法以sep为分隔符,将s切分成多个子串,结果中不包含 sep 本身
func Split(s, sep string) []string
strings.Split("a,b,c", ",") //["a" "b" "c"]
strings.Split("a man a plan a canal panama", "a ") //["" "man " "plan " "canal panama"]
strings.Split(" xyz ", "") //[" " "x" "y" "z" " "]
strings.Split("", "Bernardo O'Higgins") //[""]
Trim、TrimSpace、TrimPrefix,TrimSuffix方法
Trim将删除s首尾连续的包含在cutset中的字符
TrimSpace将删除s首尾连续的的空白字符
TrimPrefix删除s头部的prefix字符串
TrimSuffix 删除s尾部的suffix字符串
func Trim(s, cutset string) string
func TrimSpace(s string) string
func TrimPrefix(s, prefix string) string
func TrimSuffix(s, suffix string) string
strings.Trim("¡¡¡Hello, Gophers!!!", "!¡") //Hello, Gophers
strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n")//Hello, Gophers
var s = "¡¡¡Hello, Gophers!!!"
strings.TrimPrefix(s, "¡¡¡Hello, ") //Gophers!!!
strings.TrimSuffix(s, ", Gophers!!!") //¡¡¡Hello