博客主页:🏆看看是李XX还是李歘歘 🏆
🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺
💗点关注不迷路,总有一些📖知识点📖是你想要的💗
⛽️今天的内容是 Go语言strings库的常见用法 ⛽️💻💻💻
目录
常见用法
是否包含
计算数量
获取下标位置
转换
替换拼接
去除
分割
go语言中文文档:Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国
常见用法
是否包含
判断是否包含前缀、后缀、子串、字符已经子串的任意一个字符
package main
import (
"fmt"
"strings"
)
func main() {
// 是否包含前缀
fmt.Println(strings.HasPrefix("lichuachua", "li")) //true
// 是否包含后缀
fmt.Println(strings.HasSuffix("lichuachua", "chua")) //true
// 是否包含子串
fmt.Println(strings.Contains("lichuachua", "ichua")) //true
// 是否包含字符
fmt.Println(strings.ContainsRune("lichuachua", 'i')) //true
// 是否包含子串的任意一个字符
fmt.Println(strings.ContainsAny("lichuachua", "l")) //true
}
计算数量
package main
import (
"fmt"
"strings"
)
func main() {
// 计算包含几个子串
fmt.Println(strings.Count("lichuachua", "chua")) // 2
}
获取下标位置
分为第一次出现和最后一次出现的下标位置
package main
import (
"fmt"
"strings"
)
func main() {
// 获取子串第一次出现时,第一个字符的下标位置
fmt.Println(strings.Index("lichuachua","chua")) // 2
// 获取字符第一次出现的下标位置
fmt.Println(strings.IndexByte("lichuachua",'c')) // 2
fmt.Println(strings.IndexRune("lichuachua",'c')) // 2
// 获取子串中任一字符第一次出现的位置
fmt.Println(strings.IndexAny("lichuachua","chua")) // 2
// 获取子串最后一次出现时,第一个字符的下标位置
fmt.Println(strings.LastIndex("lichuachua","chua")) // 6
// 获取字符最后一次出现的下标位置
fmt.Println(strings.LastIndexByte("lichuachua",'c')) // 6
// 获取子串中任一字符最后出现的位置
fmt.Println(strings.LastIndexAny("lichuachua","chua")) // 9
}
转换
package main
import (
"fmt"
"strings"
)
func main() {
// 将字符串中的每个单词转为开头大写的单词
fmt.Println(strings.Title("li chua chua")) // Li Chua Chua
// 将字符串中的所有字母转为大写
fmt.Println(strings.ToUpper("li CHUA chua")) // LI CHUA CHUA
// 将字符串中的所有字母转为小写
fmt.Println(strings.ToLower("li CHUA chua")) // li chua chua
}
替换拼接
package main
import (
"fmt"
"strings"
)
func main() {
// 将n个字符串串联起来
fmt.Println(strings.Repeat("li CHUA chua", 2)) // li CHUA chuali CHUA chua
// 多个字符串按照固定格式拼接为一个字符串
fmt.Println(strings.Join([]string{"li", "chua", "chua"}, "@")) //li@chua@chua
// 替换字符串中的内容,可以控制替换前几个,-1为全部替换
fmt.Println(strings.Replace("li chua chua", "chua", "CHUA", -1)) // li CHUA CHUA
// 替换字符串中的某些字符,可以自己控制替换的内容
fmt.Println(strings.Map(func(c rune) rune {
switch c {
case 'c':
return 'C'
case 'h':
return 'H'
}
return c
}, "li chua chua")) // li CHua CHua
}
去除
package main
import (
"fmt"
"strings"
)
func main() {
// 去除字符串前后端所有包含子串的部分
fmt.Println(strings.Trim("li chua chua", "chua")) // li chua
// 去除字符串前端包含【所有】子串的部分
fmt.Println(strings.TrimLeft("lichuachua", "li")) // chuachua
// 去除字符串后端包含【所有】子串的部分
fmt.Println(strings.TrimRight("lichuachua", "chua")) // li
// 去除字符串中包含前缀的部分【非所有】
fmt.Println(strings.TrimPrefix("lichuachua","li")) // chuachua
// 去除字符串中包含后缀的部分【非所有】
fmt.Println(strings.TrimSuffix("lichuachua","chua")) // lichua
// 去除字符串前后端【所有】包含空格/tab的部分
fmt.Println(strings.TrimSpace(" li chua chua ")) // li chua chua
// 去除字符串前后端【所有】包含某字符的部分
fmt.Println(strings.TrimFunc("li chua chuaa", func(r rune) bool {
if r == 'a' {
return true
}
return false
})) // li chua chu
}
分割
package main
import (
"fmt"
"strings"
)
func main() {
// 字符串按照空白分割到一个切片中
fmt.Println(strings.Fields("li chua chua")) // [li chua chua]
// 字符串按照某一些字符到一个切片中
fmt.Println(strings.FieldsFunc("lixchuaxchua", func(r rune) bool{
if r== 'x' {
return true
}
return false
})) // [li chua chua]
// 字符串按照字符串分割到一个切片中
fmt.Println(strings.Split("lichuachua","ch")) // [li ua ua]
}
package main
import (
"fmt"
"strings"
)
func main() {
lcc1 := strings.EqualFold("lcc","lcc")
fmt.Println(lcc1)
lcc2 := strings.HasPrefix("lichuachua","li")
lcc3 := strings.HasSuffix("liyuhao","ao")
fmt.Println(lcc2)
fmt.Println(lcc3)
lcc4 := strings.Contains("lichuachua","chu")
lcc5 := strings.ContainsAny("lichua","l")
fmt.Println(lcc4)
fmt.Println(lcc5)
lcc6 := strings.Count("lichuachua","chua")
fmt.Println(lcc6)
lcc7 := strings.Index("lichuachua","hu")
fmt.Println(lcc7)
lcc8 := strings.IndexByte("lichuachua",'c')
lcc9 := strings.IndexRune("lichuachua",'c')
fmt.Println(lcc8)
fmt.Println(lcc9)
lcc10 := strings.LastIndex("lichuachua","i")
fmt.Println(lcc10)
lcc11 := strings.ToLower("LICHUACHUA")
lcc12 := strings.ToUpper("lichuachua")
fmt.Println(lcc11)
fmt.Println(lcc12)
lcc13 := strings.Repeat("lcc",2)
lcc14 := strings.Replace("lichuachua","chua","xu",-1)
fmt.Println(lcc13)
fmt.Println(lcc14)
lcc15 := strings.Trim("cclicc","c")
fmt.Println(lcc15)
lcc16 := strings.Join([]string{"lcc","lyh","ry"},",")
fmt.Println(lcc16)
}