strings包实现了用于操做字符的简单函数。app
判断给定字符串s中是否包含子串substr, 找到返回true, 找不到返回false函数
func Contains(s, substr string) bool
实例以下:spa
package main import ( "fmt" "strings" ) func main() { fmt.Println("包含子串返回:", strings.Contains("oldboy", "boy")) fmt.Println("不包含子串返回:", strings.Contains("oldboy", "girl")) fmt.Println("子字符串是空字符串返回:", strings.Contains("oldboy", "")) fmt.Println("原字符串、子字符串都是空字符串返回:", strings.Contains("1", "1")) fmt.Println("中文字符串包含子串返回:", strings.Contains("蒋春生", "春生")) }
运行结果:code
包含子串返回: true 不包含子串返回: false 子字符串是空字符串返回: true 原字符串、子字符串都是空字符串返回: true 中文字符串包含子串返回: true
在字符串s中查找sep所在的位置, 返回位置值, 找不到返回-1orm
func Index(s, sep string) int
实例以下:blog
package main import ( "fmt" "strings" ) func main() {
fmt.Println("存在返回第一个匹配字符的位置:", strings.Index("oldboy", "boy"))
fmt.Println("不存在返回:", strings.Index("oldboy", "girl"))
fmt.Println("中文字符串存在返回:", strings.Index("蒋春生", "春生"))
}
运行结果:ci
存在返回第一个匹配字符的位置: 3 不存在返回: -1 中文字符串存在返回: 3
统计给定子串sep的出现次数, sep为空时, 返回字符串的长度 + 1unicode
func Count(s, sep string) int
实例以下:字符串
package main import ( "fmt" "strings" ) func main() { fmt.Println("子字符串出现次数:", strings.Count("oldboy", "o")) fmt.Println("子字符串为空时, 返回:", strings.Count("oldboy", "")) }
运行结果:string
子字符串出现次数: 2 子字符串为空时, 返回: 7
重复s字符串count次, 最后返回新生成的重复的字符串
func Repeat(s string, count int) string
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Repeat("嘀嗒", 4), "时针它不停在转动") }
运行结果:
嘀嗒嘀嗒嘀嗒嘀嗒 时针它不停在转动
在s字符串中, 把old字符串替换为new字符串,n表示替换的次数,若是n<0会替换全部old子串。
func Replace(s, old, new string, n int) string
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Replace("luck luck luck", "k", "ky", 2)) fmt.Println(strings.Replace("luck luck luck", "k", "ky", -1)) }
运行结果:
lucky lucky luck
lucky lucky lucky
删除在s字符串的头部和尾部中由cutset指定的字符, 并返回删除后的字符串
func Trim(s string, cutset string) string
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Trim(" oldboy ", " ")) }
运行结果:
oldboy
给定字符串转换为英文标题的首字母大写的格式(不能正确处理unicode标点)
func Title(s string) string
返回将全部字母都转为对应的小写版本的拷贝
func ToLower(s string) string
返回将全部字母都转为对应的大写版本的拷贝
func ToUpper(s string) string
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.Title("It is never too late to learn.")) fmt.Println(strings.ToLower("It Is Never Too Late To Learn.")) fmt.Println(strings.ToUpper("It is never too late to learn.")) }
运行结果:
It Is Never Too Late To Learn. it is never too late to learn. IT IS NEVER TOO LATE TO LEARN.
判断字符串是否包含前缀prefix,大小写敏感
func HasPrefix(s, prefix string) bool
判断s是否有后缀字符串suffix,大小写敏感
func HasSuffix(s, suffix string) bool
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println("前缀是以old开头的:", strings.HasPrefix("oldboy", "old")) fmt.Println("后缀是以boy开头的:", strings.HasSuffix("oldboy", "boy")) }
运行结果:
前缀是以old开头的: true 后缀是以boy开头的: true
用去掉s中出现的sep的方式进行分割,会分割到结尾,并返回生成的全部片断组成的切片(每个sep都会进行一次切割,即便两个sep相邻,也会进行两次切割)。若是sep为空字符,Split会将s切分红每个unicode码值一个字符串。
func Split(s, sep string) []string
返回将字符串按照空白(unicode.IsSpace肯定,能够是一到多个连续的空白字符)分割的多个字符串。若是字符串所有是空白或者是空字符串的话,会返回空切片。
func Fields(s string) []string
实例以下:
package main import ( "fmt" "strings" ) func main() { fmt.Println("Split 函数的用法") fmt.Printf("%q\n", strings.Split("Linux,Python,Golang,Java", ",")) fmt.Printf("%q\n", strings.Split("a mountain a temple", "a ")) fmt.Printf("%q\n", strings.Split(" abc ", "")) fmt.Printf("%q\n", strings.Split("", "oldboy")) fmt.Println("Fields 函数的用法") fmt.Printf("Fields are: %q\n", strings.Fields(" Linux Python Golang Java ")) }
运行结果:
Split 函数的用法 ["Linux" "Python" "Golang" "Java"] ["" "mountain " "temple"] [" " "a" "b" "c" " "] [""] Fields 函数的用法 Fields are: ["Linux" "Python" "Golang" "Java"]
func Split(s, sep string) []string