Go 语言的 strings
包是标准库中的一个重要部分,专门用于操作字符串。它提供了丰富的字符串处理函数,涵盖了查找、比较、替换、分割、拼接、修剪等操作。在 Go 语言中,字符串是不可变的,strings
包提供的函数都不会修改原始字符串,而是返回新的字符串。
1. 字符串查找和比较
func Compare(a, b string) int
:比较两个字符串a
和b
。如果a
比b
小,返回 -1;如果相等,返回 0;如果a
比b
大,返回 1。func Contains(s, substr string) bool
:判断字符串s
是否包含子字符串substr
,如果包含,返回true
,否则返回false
。func ContainsAny(s, chars string) bool
:判断字符串s
是否包含chars
中的任意一个字符,返回true
或false
。func ContainsRune(s string, r rune) bool
:判断字符串s
是否包含 Unicode 字符r
,返回true
或false
。func Count(s, sep string) int
:计算子字符串sep
在字符串s
中出现的次数。func EqualFold(s, t string) bool
:判断两个字符串是否在忽略大小写的情况下相等,返回true
或false
。func HasPrefix(s, prefix string) bool
:判断字符串s
是否以prefix
为前缀,返回true
或false
。func HasSuffix(s, suffix string) bool
:判断字符串s
是否以suffix
为后缀,返回true
或false
。func Index(s, sep string) int
:返回子字符串sep
在字符串s
中第一次出现的位置索引,如果未找到则返回 -1。func IndexAny(s, chars string) int
:返回字符串s
中第一个出现在chars
中的任意一个字符的位置索引,如果未找到则返回 -1。func IndexByte(s string, c byte) int
:返回字节c
在字符串s
中第一次出现的位置索引,如果未找到则返回 -1。func IndexRune(s string, r rune) int
:返回 Unicode 字符r
在字符串s
中第一次出现的位置索引,如果未找到则返回 -1。func LastIndex(s, sep string) int
:返回子字符串sep
在字符串s
中最后一次出现的位置索引,如果未找到则返回 -1。func LastIndexAny(s, chars string) int
:返回字符串s
中最后一个出现在chars
中的任意一个字符的位置索引,如果未找到则返回 -1。func LastIndexByte(s string, c byte) int
:返回字节c
在字符串s
中最后一次出现的位置索引,如果未找到则返回 -1。
2. 字符串替换
func Replace(s, old, new string, n int) string
:返回一个新的字符串,在字符串s
中,将前n
个old
子字符串替换为new
。如果n
为 -1,则替换所有出现的old
。func ReplaceAll(s, old, new string) string
:返回一个新的字符串,在字符串s
中,将所有的old
子字符串替换为new
。
3. 字符串修改
func ToLower(s string) string
:将字符串s
中的所有字符转换为小写。func ToUpper(s string) string
:将字符串s
中的所有字符转换为大写。func Title(s string) string
:将字符串s
中的每个单词的首字母转换为大写。func Trim(s, cutset string) string
:去除字符串s
开头和结尾处的cutset
中的任意字符。func TrimSpace(s string) string
:去除字符串s
开头和结尾的空白字符。func TrimPrefix(s, prefix string) string
:如果字符串s
以prefix
为前缀,则去除该前缀,否则返回原始字符串s
。func TrimSuffix(s, suffix string) string
:如果字符串s
以suffix
为后缀,则去除该后缀,否则返回原始字符串s
。func Map(mapping func(rune) rune, s string) string
:返回一个新的字符串,其中s
中的每个字符通过mapping
函数进行转换。
4. 字符串分割和拼接
func Split(s, sep string) []string
:将字符串s
按照分隔符sep
分割,返回一个字符串切片。如果sep
为空,则将s
的每个字符作为分割点。func SplitN(s, sep string, n int) []string
:将字符串s
按照分隔符sep
分割最多n
个子字符串,并返回这些子字符串组成的切片。func SplitAfter(s, sep string) []string
:将字符串s
按照分隔符sep
分割,保留分隔符,并返回一个字符串切片。func SplitAfterN(s, sep string, n int) []string
:将字符串s
按照分隔符sep
分割最多n
个子字符串,保留分隔符,并返回这些子字符串组成的切片。func Join(a []string, sep string) string
:将字符串切片a
中的所有元素连接成一个字符串,并在每个元素之间插入分隔符sep
。
5. 其他实用函数
func Repeat(s string, count int) string
:返回一个新的字符串,包含s
重复count
次的结果。func NewReader(s string) *strings.Reader
:返回一个*strings.Reader
,该 Reader 实现了io.Reader
、io.ReaderAt
、io.Seeker
、io.WriterTo
和io.ByteScanner
接口,可以用来高效地读取字符串。func ToValidUTF8(s, replacement string) string
:将字符串s
中的无效 UTF-8 字符替换为replacement
,并返回一个新的字符串。