strings包 #
Golang提供了许多内置的字符串函数,这些函数可在处理字符串数据时帮助执行一些操作。Golang字符串函数是核心部分。使用此功能无需安装,仅需要导入strings包。
import strings
重要的Golang字符串函数列表如下:
查找 #
Count() #
查找字符串substr在字符串s中出现的次数
func Count(s, substr string) int
Contains() #
判断字符串s中是否包含字符串substr
func Contains(s, substr string) bool
ContainsRune() #
判断字符串s中是否包含utf8字符r
func ContainsRune(s string, r rune) bool
Index() #
从前往后查找字符串s中,字符串substr第一次出现的位置,没有则返回-1
func Index(s, substr string) int
注意:Index()返回的位置是开始的字节索引,而不是字符,所以对于Unicode字符串,例如中文,则不是字符所在位置,对于中文字符,可以使用如下的方式计算,该方式对于其他...Index()方法同样适用
s1 := "你好中国"
i := strings.Index(s1, "中国")
fmt.Println(i) // 6
fmt.Println(utf8.RuneCountInString(s1[:i])) // 2
LastIndex() #
从后往前查找字符串s中,字符串substr第一次出现的位置,没有则返回-1
func LastIndex(s, substr string) int
IndexAny() #
从前往后查找字符串s中,字符序列chars中任意字符第一次出现的位置,没有则返回-1
func IndexAny(s, chars string) int
LastIndexAny() #
从后往前查找字符串s中,字符序列chars中任意字符第一次出现的位置,没有则返回-1
func LastIndexAny(s, chars string) int
IndexByte() #
从前往后查找字符串s中,ASCII码字符c第一次出现的位置,没有则返回-1
func IndexByte(s string, c byte) int
LastIndexByte() #
从后往前查找字符串s中,ASCII码字符c第一次出现的位置,没有则返回-1
func LastIndexByte(s string, c byte) int
IndexRune() #
从前往后查找字符串s中,UTF8码字符r第一次出现的位置,没有则返回-1
func IndexRune(s string, r rune) int
LastIndexRune() #
从后往前查找字符串s中,UTF8码字符r第一次出现的位置,没有则返回-1
func LastIndexRune(s string, r rune) int
IndexFunc() #
从前往后查找字符串s中,使f函数返回true的字符位置,没有则返回-1
func IndexFunc(s string, f func(rune) bool) int
LastIndexFunc() #
从后往前查找字符串s中,使f函数返回true的字符位置,没有则返回-1
func LastIndexFunc(s string, f func(rune) bool) int
HasPrefix() #
检查字符串s是否以prefix开头,是则返回true
func HasPrefix(s, prefix string) bool
HasSuffix() #
检查字符串s是否以prefix结尾,是则返回true
func HasSuffix(s, suffix string) bool
替换 #
Title() #
将字符串每个单词的首字母替换为大写,并返回
func Title(s string) string
ToTitle() #
将字符串每个单词的所有字母替换为大写,并返回
func ToTitle(s string) string
ToLower() #
将字符串中全部字母转换为小写,并返回
func ToLower(s string) string
ToUpper() #
将字符串中全部字母转换为大写,并返回
func ToUpper(s string) string
Replace() #
从左往右将字符串s中的字符串old替换为new,替换n次结束并返回,如果n小于0,则全部替换
func Replace(s, old, new string, n int) string
ReplaceAll() #
将字符串s中的字符串old全部替换为new
func ReplaceAll(s, old, new string) string
去除 #
Trim() #
从字符串s的两侧删除字符串cutset,并返回
func Trim(s string, cutset string) string
TrimSpace() #
从字符串s的两侧删除空白和其他预定义字符,包括"\t","\n","\x0B","\r"," ",并返回
func TrimSpace(s string) string
TrimPrefix() #
从字符串s的开头删除前缀字符串cutset,并返回,只删除一次
func TrimPrefix(s string, cutset string) string
TrimSuffix() #
从字符串s的开头删除后缀字符串cutset,并返回,只删除一次
func TrimSuffix(s string, cutset string) string
TrimLeft() #
从字符串s的左边开始删除字符串cutset,并返回,如果左边有连续的cutset,则会全部删除
func TrimLeft(s string, cutset string) string
TrimRight() #
从字符串s的右边开始删除字符串cutset,并返回,如果右边有连续的cutset,则会全部删除
func TrimRight(s string, cutset string) string
比较 #
除了==进行比较以外,strings还提供了两种比较方法
Compare() #
比较字符串a和b的大小,如果相等返回0,如果a大于b返回大于0的数
func Compare(a, b string) int
EqualFold() #
判断两个字符串是否相当,不区分大小写
func EqualFold(s, t string) bool
拆分 #
Split() #
将字符串s以字符串sep分割为子串,并返回切片,子串中不包含sep
func Split(S string, sep string) []string
SplitN() #
从左往右将字符串s以字符串sep分割为子串n次,并返回切片,最后一个子字符串将是未拆分的部分
func SplitN(s, sep string, n int) []string
SplitAfter() #
将字符串s分割为若干个以sep结尾的字串,并返回切片,子串中包含sep
func SplitAfter(S String, sep string) []string
拼接 #
Repeat() #
将字符串s重复count次返回,count必须大于等于0
func Repeat(s string, count int) string
Join() #
将切片stringSlice中的每个元素字符串以字符串sep拼接为新字符串并返回
func Join(stringSlice []string, sep string) string