Go语言中的strings包提供了很多用于处理字符串的函数。这个包是标准库的一部分,因此在使用时不需要额外安装。下面是一些常用的strings包功能介绍和示例代码:
基础导入
首先需要导入strings包:import "strings"字符串比较
Equal(s, t string) bool: 检查两个字符串是否相等。Compare(a, b string) int: 字典序比较两个字符串。
包含检查
Contains(s, substr string) bool: 判断s中是否包含子串substr。ContainsAny(s, chars string) bool: 判断s中是否含有chars里的任何一个字符。ContainsRune(s string, r rune) bool: 判断s中是否含有Unicode码点r。
替换与修改
Replace(s, old, new string, n int) string: 替换s中前n个出现的old为new。如果n < 0则替换所有出现。Repeat(s string, count int) string: 重复s共count次。ToTitle(s string) string: 将s转换为其标题形式(每个单词首字母大写)。ToLower(s string) string: 转换成小写。ToUpper(s string) string: 转换成大写。
分割与连接
Split(s, sep string) []string: 根据分隔符sep将s分割成多个子串。Join(a []string, sep string) string: 使用sep作为分隔符连接切片a中的元素。
前后缀
HasPrefix(s, prefix string) bool: 检查s是否以prefix开头。HasSuffix(s, suffix string) bool: 检查s是否以suffix结尾。
修剪空白
Trim(s string, cutset string) string: 移除s两端的cutset指定的字符。TrimLeft(s string, cutset string) string: 只移除左边。TrimRight(s string, cutset string) string: 只移除右边。TrimSpace(s string) string: 移除s两边的空白字符。
索引查找
Index(s, substr string) int: 返回substr在s中的第一个匹配位置,如果未找到返回-1。LastIndex(s, substr string) int: 返回substr在s中的最后一个匹配位置,如果未找到返回-1。
字段映射
Fields(s string) []string: 将s按空格分割成多个字段。FieldsFunc(s string, f func(rune) bool) []string: 根据提供的函数f来决定如何分割字符串。
示例
package main
import (
"fmt"
"strings"
)
func main() {
s := "Hello, World!"
// 包含检查
fmt.Println(strings.Contains(s, "World")) // true
// 字符串替换
fmt.Println(strings.Replace(s, "World", "Golang", 1)) // Hello, Golang!
// 分割
parts := strings.Split(s, ", ")
for _, part := range parts {
fmt.Println(part)
}
// 连接
fmt.Println(strings.Join([]string{
"Hello", "World"}, " ")) // Hello World
// 大小写转换
fmt.Println(strings.ToUpper(s)) // HELLO, WORLD!
fmt.Println(strings.ToLower(s)) // hello, world!
}
这些只是strings包提供的一部分功能。对于更复杂的需求,你可能还需要查看官方文档或探索其他相关包如strconv、unicode/utf8等。