概述
Go 语言的 strings 包提供了一系列处理 UTF-8 编码字符串的便捷函数。由于 Go 中的字符串是不可变的,这些函数通常返回新的字符串对象,不会修改原数据。
大小写转换
将字符串转换为大写或小写非常直接。注意它们返回的是新字符串。
s := "hello world"
s = strings.ToUpper(s)
fmt.Println(s) // 输出:HELLO WORLD
同理,转小写使用 ToLower:
s := "HELLO WORLD"
s = strings.ToLower(s)
fmt.Println(s) // 输出:hello world
字符串比较
Compare 函数按字典序比较两个字符串,返回 -1、0 或 1。EqualFold 则忽略大小写进行判断,适合对大小写不敏感的场景。
str1 := "1234"
str2 := "4567"
ret := strings.Compare(str1, str2)
// ret 为 -1,因为 str1 < str2
ret = strings.EqualFold("aaaa", "AAAA")
// true,大小写不敏感匹配
裁剪与清理
Trim 系列函数用于去除指定字符集或空白。TrimSpace 专门处理空白字符,是清理输入最常用的工具。
str := "**hello world**"
str = strings.Trim(str, "*")
// 结果:hello world
str = strings.TrimSpace(" hello world ")
// 结果:hello world
分割与合并
Fields 按空白分割,Split 按指定分隔符分割,Join 则将切片合并为字符串。注意 Fields 会自动过滤连续空白。
items := strings.Fields("how are you")
// [how are you]
parts := strings.Split("a,b,c", ",")
// [a b c]
joined := strings.Join(parts, "-")
// a-b-c
替换操作
Replace 支持指定替换次数,n 为负数时替换所有匹配项。这在批量清洗数据时很有用。
str := "aaa,bbb"
result := strings.Replace(str, "aaa", "AAA", -1)
// AAA,bbb


