strings包提供了操作字符串的简单函数。
- func Compare(a,b string) int
- func Contains(s, substr string) bool
- func Count(s, sep string) int
- func Fields(s string) []string
- func FieldsFunc(s string, f func(rune) bool) []string
- func HasPrefix(s, prefix string) bool
- func HasSuffix(s, suffix string) bool
- func Index(s, sep string) int
- func LastIndex(s,sep string) int
- func Join(a []string,sep string) string
- func Repeat(s string,count int) string
- func Replace(s,old,new string,n int) string
- func Split(s,sep string) []string
- func SplitN(s,sep string, n int) []string
- func ToLower(s string) string
- funcc ToUpper(s string) string
- func Trim(s string,cutset string) string
1. func Compare
1 | func Compare(a, b string) int |
根据字典顺序,比较两个字符串的大小。字典顺序,就是说,将多个字符串的同一位置的字符按照26个字母的顺序进行比对。a最小,z最大。
1 | The result will be 0 if a==b, -1 if a < b, and +1 if a > b. |
2. func Contains
判断,原字符串是否包含子串
1 | fmt.Println(strings.Contains("seafood", "foo")) |
输出
1 | true |
3. func Count
1 | func Count(s, sep string) int |
Count计算s中非重叠sep实例的数量。如果sep是空字符串,则Count返回1 +len(s)。
1 | fmt.Println(strings.Count(“cheese”,“e”)) |
输出
1 | 3 |
4. func Fields
1 | func Fields(s string) []string |
以空格为分隔符,分割字符串s,并返回字符切片
5. func FieldsFunc
按照空格,分割字符串,同时对分割后的单个字符串,做相应的逻辑判断,如果匿名函数为真,则不返回该子串。最后返回一个字符串切片。1
2
3
4
5
6
7
8
9
10//只返回字母
func testFieldsFunc() {
str := "- MY NAME is meichaofan JACK 1534"
r := strings.FieldsFunc(str, func(r rune) bool {
return !unicode.IsLetter(r)
})
fmt.Printf("%v", r)
}
//output
// [MY NAME is meichaofan JACK]
6. func HasPrefix
判断字符串是否以某个前缀开头
1 | func testHasPrefix() { |
7. func HasSuffix
判断字符串是否以某个后缀结束
1 | func testHasSuffix() { |
8.func Index
1 | func Index(s,sep string)int |
Index 返回s中第一个sep子串的位置,如果不存在sep,返回-1
代码:
1 | fmt.Println(strings.Index(“chicken”,“ken”)) |
输出:
1 | 4 |
9.func LastIndex
返回子串最后一次出现的位置
10.func Join
字符串切片以sep合并
1 | str := []string{"my", "name", "is", "jack"} |
11. func Repeat
重复字符串
1 | fmt.Println(“ba”+ strings.Repeat(“na”,2)) |
12. func Replace
1 | func Replace(s, old, new string, n int) string |
字符串替换,将原串中old串,替换成new串。替换次数为n次。当n<0,替换次数没有限制。
1 | fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) |
13.fun Split
1 | func Split(s, sep string) []string |
将字符串s按照分隔符sep分割。
1 | fmt.Printf("%q\n", strings.Split("a,b,c", ",")) |
输出
1 | ["a" "b" "c"] |
14. func SplitN
1 | func SplitN(s,sep string,n int)[] string |
n表示要返回的子字符串数:
1 | n>0:最多n个子串,最后一个子字符串是未分割的余数 |
代码
1 | fmt.Printf(“%q \ n”,strings.SplitN(“a,b,c”,“,”,2)) |
输出
1 | [“a”“b,c”] |