3、strings

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