len:统计字符串的长度
func main() {
str := "English中文"
fmt.Println("str的长度为:", len(str)) // 13,中文3个字节
}
查找子串是否在指定的字符串中:
func main() {
fmt.Println(strings.Contains("itzhuzhu", "zhuzhu")) // true
fmt.Println(strings.Contains("itzhuzhu", "Hello")) // false
}
统计一个字符串有几个指定的子串 :
func main() {
fmt.Println(strings.Count("aaabbbccc", "abcabc")) // 0
fmt.Println(strings.Count("aaabbbccc", "aaabbbccc")) //1
}
字符串比较(==是区分大小写,EqualFold是不区分大小写)
func main() {
var x string = "ITzhuzhu"
var y string = "itzhuzhu"
fmt.Println(strings.EqualFold(x, y)) //true
fmt.Println(x == y) //false
}
返回子串在字符串第一次出现的索引,如果没有则返回-1:
func main() {
fmt.Println(strings.Index("ITzhuzhu", "I")) // 0
fmt.Println(strings.Index("ITzhuzhu", "IT")) // 0
fmt.Println(strings.Index("ITzhuzhu", "ITZ")) // -1
fmt.Println(strings.Index("ITzhuzhu", "zhuzhu")) // 2
}
返回子串在字符串最后一次出现的索引,如果没有返回-1:
func main() {
fmt.Println(strings.LastIndex("ITzhuzhu", "IT")) // 0
fmt.Println(strings.LastIndex("ITzhuzhu", "zhu")) // 5
fmt.Println(strings.LastIndex("ITzhuzhu", "u")) // 7
}
将指定的子串替换成另外一个子串:
func main() {
// 参数1:字符串,参数2:要替换的字符串,参数3,替换后的字符串,参数4,替换几个,-1是全部,1是第一个,2是第二个,以此类推
fmt.Println(strings.Replace("itzhuzhu", "z", "Z", 1)) // itZhuzhu
fmt.Println(strings.Replace("itzhuzhu", "z", "Z", -1)) // itZhuZhu
}
按照指定的分割标识,将字符串拆分为字符串数组
func main() {
s := strings.Split("it,zhu,zhu", ",")
fmt.Printf("%T,%v", s, s) // []string,[it zhu zhu]
}
将字符串的字母进行大小写的转换:
func main() {
// ToLower:转为小写,ToUpper:转为大写
fmt.Printf(strings.ToLower("ITZHUZHU\n")) // itzhuzhu
fmt.Printf(strings.ToUpper("itzhuzhu")) // ITZHUZHU
}
将字符串左右两边的空格去掉:
func main() {
fmt.Printf(strings.TrimSpace(" IT ZHU ZHU ")) // IT ZHU ZHU 只能去掉两边的空格,中间的去不掉
}
将字符串左右两边指定的字符删除:
func main() {
// 删除两边指定的字符 参数1:原字符串,参数2:要去掉的字符
fmt.Println(strings.Trim("&%IT ZHU ZHU&%*(」", "&%*(」")) //IT ZHU ZHU
// 删除左边指定的字符
fmt.Println(strings.TrimLeft("&%IT ZHU ZHU&%*(」", "&%")) //IT ZHU ZHU&%*(」
// 删除右边指定的字符
fmt.Println(strings.TrimRight("&%IT ZHU ZHU&%*(」", "&%*(」")) //&%IT ZHU ZHU
}
判断字符串是否以指定的字符串开头:
func main() {
// 判断是不是以www开头的,返回值是bool
fmt.Println(strings.HasPrefix("www.itzhuzhu.com", "www.")) // true
// 判断是不是com结尾
fmt.Println(strings.HasSuffix("www.itzhuzhu.com", "www")) // false
fmt.Println(strings.HasSuffix("www.itzhuzhu.com", ".com")) // true
}
更多的还是去官方文档里去看:https://studygolang.com/pkgdoc
判断字符串中是否包含指定字符串
func main() {
str := "itzhuzhu"
result := strings.Contains(str, "zhu")
fmt.Println(result) // true
}
字符串连接
func main() {
str := []string{"a", "b", "c", "d", "e", "f"}
join := strings.Join(str, "")
fmt.Println("join:", join) // join: abcdef
}
查找指定字符串所在的位置,返回索引,找不到返回-1
func main() {
str := "itzhuzhu"
result := strings.Index(str, "zhu")
fmt.Println("result:", result) // result: 2
}
重复字符串次数,返回重复的字符串
func main() {
str := "itzhuzhu"
result := strings.Repeat(str, 3)
fmt.Println("result:", result) // result: itzhuzhuitzhuzhuitzhuzhu
}
func Replace(s, old, new string, n int) string
在s字符串中,把old字符串替换为new string字符串,n表示替换的次数,小于0表示全部替换
func main() {
str := "itzhuzhu"
strings.Replace(str, "z", "Z", 1)// 替换第一个
strings.Replace(str, "z", "Z", -1)// 全部替换
}
输出:
itZhuzhu
itZhuZhu
字符串分割,返回切片
func main() {
str := "[email protected]"
split := strings.Split(str, "@")
fmt.Println("split:", split) // split: [itzhuzhu 163.com]
}
func Trim(s string, cutset string) string
在s字符串的头部和尾部去除cutset指定的字符串
func main() {
str := " [email protected] "
trim := strings.Trim(str, " ") // 去掉两头空格
fmt.Println("trim:", trim)
}
去除字符串的空格符,并且按照空格分割返回slice
func main() {
str := " [email protected] "
fields := strings.Fields(str)
fmt.Println("fields:", fields) // fields: [[email protected]]
}