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,并返回一个新的字符串。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
腾讯云开发者社区:孟斯特