列举出用过的一些函数,加说明和例子,下面是源码加运行结果:
package main
import (
"fmt"
"strings"
"unicode"
)
func main(){
var str1, str2 string
str1 = "123456"
str2 = "abcdef"
fmt.Println("-------------Compare----------------")
//函数原型:func Compare(a, b string) int
//功能:按字典顺序比较两个字符串的整数。如果a == b则结果为0,如果a <b则结果为-1,如果a> b则结果为+1。
//说明:仅包含与包字节对称的比较。使用内置字符串比较运算符==,<,>等通常更清晰,速度更快。
fmt.Println(strings.Compare(str1, "123456"))
fmt.Println(str1 == "123456")
fmt.Println(strings.Compare(str1, str2))
fmt.Println("-------------Contains----------------")
//函数原型:func Contains(s, substr string) bool
//功能:substr是否在s中出现
//说明:这里的包含需要全部匹配,可以和下一个函数ContainsAny区别比较
fmt.Println(strings.Contains("food is eeeee", "foo"))
fmt.Println(strings.Contains("food food food is not found.", "bar"))
fmt.Println(strings.Contains("food", ""))
fmt.Println(strings.Contains("", ""))
fmt.Println("-------------ContainsAny----------------")
//函数原型:func ContainsAny(s, chars string) bool
//功能:chars中任意一个unicode编码字符是否出现在s中
//说明:和Contains区别,Contains需要Contains全部匹配
fmt.Println(strings.ContainsAny("team", "i"))
fmt.Println(strings.ContainsAny("failure", "u & i"))
fmt.Println(strings.ContainsAny("failure", "u k"))
fmt.Println(strings.ContainsAny("foo", ""))
fmt.Println(strings.ContainsAny("", ""))
fmt.Println("-------------Count----------------")
//函数原型:func Count(s, substr string) int
//功能:计算在s中substr出现的非重叠的个数
//说明:注意非重叠,同时,如果是计算substr是"",那么返回的是1 + s的字符数量,可以用来计算字符串的长度
fmt.Println(strings.Count("exit", "e"))
fmt.Println(strings.Count("abababab", "aba"))
fmt.Println(strings.Count("five", ""))
fmt.Println("-------------EqualFold----------------")
//函数原型:func EqualFold(s, t string) bool
//功能:不区分大小写的情况下比较s和t是否相等,
//说明:默认编码为utf-8
fmt.Println(strings.EqualFold("golang", "Golang"))
fmt.Println(strings.EqualFold("hello", "Hello"))
fmt.Println("-------------Fields----------------")
//函数原型:func Fields(s string) []string
//功能:以空格为分隔符切分字符串
//说明:
fmt.Printf("Fields are: %q \n", strings.Fields(" a ab abc aaa"))
fmt.Println("-------------Fields----------------")
//函数原型:func FieldsFunc(s string, f func(rune) bool) []string
//功能:FieldsFunc在每次运行满足f(c)的Unicode代码点c时拆分字符串s,并返回s的切片数组。
f := func(c rune) bool {
return !unicode.IsLetter(c) && !unicode.IsNumber(c)
}
fmt.Printf("Fields are: %q\n", strings.FieldsFunc(" abc1;aaa2,ccc3...eee1 ", f))
fmt.Println("-------------Replace----------------")
//函数原型:func Replace(s, old, new string, n int) string
//功能:将s中出现的不重叠的old字符串替换成new,最多替换n次,n为-1,没有次数替换
fmt.Println(strings.Replace("abc abc abc", "b", "de", 2))
fmt.Println(strings.Replace("abc abc abc", "abc", "go", -1))
fmt.Println(strings.Replace("abababab", "aba", "go", -1))
fmt.Println(strings.Replace("abc abc abc", "", "1", -1))
fmt.Println(strings.Replace("abc abc abc", "", "1", 2))
}
结果: