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
等。