Go标准库:strings

2024-08-11 08:36:49 浏览数 (2)

Go 语言的 strings 包是标准库中的一个重要部分,专门用于操作字符串。它提供了丰富的字符串处理函数,涵盖了查找、比较、替换、分割、拼接、修剪等操作。在 Go 语言中,字符串是不可变的,strings 包提供的函数都不会修改原始字符串,而是返回新的字符串。

1. 字符串查找和比较

  • func Compare(a, b string) int:比较两个字符串 ab。如果 ab 小,返回 -1;如果相等,返回 0;如果 ab 大,返回 1。
  • func Contains(s, substr string) bool:判断字符串 s 是否包含子字符串 substr,如果包含,返回 true,否则返回 false
  • func ContainsAny(s, chars string) bool:判断字符串 s 是否包含 chars 中的任意一个字符,返回 truefalse
  • func ContainsRune(s string, r rune) bool:判断字符串 s 是否包含 Unicode 字符 r,返回 truefalse
  • func Count(s, sep string) int:计算子字符串 sep 在字符串 s 中出现的次数。
  • func EqualFold(s, t string) bool:判断两个字符串是否在忽略大小写的情况下相等,返回 truefalse
  • func HasPrefix(s, prefix string) bool:判断字符串 s 是否以 prefix 为前缀,返回 truefalse
  • func HasSuffix(s, suffix string) bool:判断字符串 s 是否以 suffix 为后缀,返回 truefalse
  • 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 中,将前 nold 子字符串替换为 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:如果字符串 sprefix 为前缀,则去除该前缀,否则返回原始字符串 s
  • func TrimSuffix(s, suffix string) string:如果字符串 ssuffix 为后缀,则去除该后缀,否则返回原始字符串 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.Readerio.ReaderAtio.Seekerio.WriterToio.ByteScanner 接口,可以用来高效地读取字符串。
  • func ToValidUTF8(s, replacement string) string:将字符串 s 中的无效 UTF-8 字符替换为 replacement,并返回一个新的字符串。

0 人点赞