strings
包实现了用于操作字符的简单函数。
常用的方法列表
strings标准库文档
方法名 |
描述 |
EqualFold(s, t string) bool |
判断两个字符串是否相同(忽略大小写) |
HasPrefix(s, prefix string) bool |
判断s是否有前缀字符串prefix。 |
HasSuffix(s, suffix string) bool |
判断s是否有后缀字符串suffix |
Contains(s, substr string) bool |
判断字符串s是否包含子串substr,(substr如果是“ ”返回true) |
Index(s, sep string) int |
子串sep在字符串s中第一次出现的位置,不存在则返回-1 |
LastIndex(s, sep string) int |
子串sep在字符串s中最后一次出现的位置,不存在则返回-1。 |
Title(s string) string |
返回s中每个单词的首字母都改为标题格式的字符串拷贝。 |
ToLower(s string) string |
转换为小写 |
ToUpper(s string) string |
转换为大写 |
Contains
判断字符串s是否包含子串substr,(substr如果是“ ”返回true)
1
| fmt.Println(strings.Contains("seafood", ""))
|
Index
子串sep在字符串s中第一次出现的位置,不存在则返回-1
1 2
| fmt.Println(strings.Index("chicken", "ken")) fmt.Println(strings.Index("chicken", "dmr"))
|
LastIndex
子串sep在字符串s中最后一次出现的位置,不存在则返回-1。
1 2 3
| fmt.Println(strings.Index("go gopher", "go")) fmt.Println(strings.LastIndex("go gopher", "go")) fmt.Println(strings.LastIndex("go gopher", "rodent"))
|
Title
1
| fmt.Println(strings.Title("hello wor1d"))
|
ToLower | ToUpper
1 2
| fmt.Println(strings.ToLower("HELLO")) fmt.Println(strings.ToUpper("word"))
|
字符串分割
方法名 |
描述 |
Fields(s string) []string |
将字符串s以空白字符分割,返回切片 |
FieldsFunc(s string, f func(rune) bool) []string |
使用函数f来确定分割符如果字符串全部是分隔符或者是空字符串的话, 会返回空切片。 |
Split(s, sep string) []string |
将字符串s以sep作为分割符进行分割, 分割后字符最后去掉sep,返回切片 |
SplitN(s, sep string, n int) []string |
将字符串s以sep作为分割符进行分割, 分割后字符最后去掉sep,n决定分割成切片长度 |
SplitAfter(s, sep string) []string |
将字符串s以sep作为分割符进行分割, 分割后字符最后加上sep,返回切片 |
SplitAfterN(s, sep string, n int) []string |
将字符串s以sep作为分割符进行分割, 分割后字符最后加上sep,n决定分割成切片长度 |
Fields
1 2
| s := "hello word golang" fmt.Println(strings.Fields(s))
|
Splits
1 2 3 4
| s := "@123@张@AB@001" sep := "@" slice1 := strings.Split(s, sep) fmt.Println(slice1)
|
SplitN
将字符串s以sep作为分割符进行分割,分割后字符最后去掉sep,n决定分割成切片长度
1 2 3
| n > 0 : 返回的切片最多n个,最后一个子字符串包含未进行切割的部分。 n == 0: 返回nil n < 0 : 返回所有的子字符串组成的切片
|
1 2 3 4
| s := "a@b@c@d@e" fmt.Println(strings.SplitN(s, "@", 2)) fmt.Println(strings.SplitN(s, "@", 0)) fmt.Println(strings.SplitN(s, "@", -1))
|
SplitAfter、SplitAfterN
1 2
| fmt.Println(strings.SplitAfter(s, "@")) fmt.Println(strings.SplitAfterN(s, "@", 2))
|
字符串替换
方法名 |
描述 |
Replace(s, old, new string, n int) string |
返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。 |
ReplaceAll(s, old, new string) string |
将字符串s中的old子串全部替换为new的新字符串 |
1 2 3
| str := "a@b@c@d@e" fmt.Println(strings.ReplaceAll(str, "@", "|")) fmt.Println(strings.Replace(str, "@", "#", -1))
|