Go语言中字符串处理
Go 语言为字符串处理提供了丰富的功能。以下是处理字符串的一些常见方法和函数:
-
基本操作:
- 获取字符串长度:
len(str) - 字符串连接:
str1 + str2 - 访问特定字符(字节):
str[index]
- 获取字符串长度:
-
字符串包 (
strings包):- 检查字符串是否包含子串:
strings.Contains(str, substr) - 字符串比较:
strings.Compare(str1, str2) - 字符串计数:
strings.Count(str, substr) - 字符串前缀和后缀检查:
strings.HasPrefix(str, prefix)和strings.HasSuffix(str, suffix) - 字符串索引:
strings.Index(str, substr)和strings.LastIndex(str, substr) - 字符串替换:
strings.Replace(str, old, new, n) - 字符串分割:
strings.Split(str, sep) - 字符串转换为大写或小写:
strings.ToUpper(str)和strings.ToLower(str) - 字符串修剪:
strings.Trim(str, cutset)、strings.TrimSpace(str)
- 检查字符串是否包含子串:
-
字节切片与字符串间的转换:
- 转换字节切片为字符串:
string(byteSlice) - 转换字符串为字节切片:
[]byte(str)
- 转换字节切片为字符串:
-
字符串格式化 (
fmt包):- 格式化字符串:
fmt.Sprintf(formatString, args...) - 打印格式化的字符串:
fmt.Printf(formatString, args...) - 从字符串读取格式化的输入:
fmt.Sscanf(str, formatString, &vars...)
- 格式化字符串:
-
正则表达式 (
regexp包):- 匹配字符串:
regexp.MatchString(pattern, str) - 查找匹配的子串:
regexp.FindString(pattern, str) - 替换匹配的子串:
regexp.ReplaceAllString(pattern, replacement)
- 匹配字符串:
-
多行字符串:
- 使用反引号(
`)创建多行字符串。
- 使用反引号(
-
字符串转换 (
strconv包):- 将字符串转换为基本数据类型:
strconv.Atoi(str)、strconv.ParseBool(str)、strconv.ParseFloat(str, bitSize)等 - 将基本数据类型转换为字符串:
strconv.Itoa(i)、strconv.FormatBool(b)、strconv.FormatFloat(f, fmt, prec, bitSize)等
- 将字符串转换为基本数据类型:
以下是一些上述方法的示例:
package main
import (
"fmt"
"strings"
)
func main() {
str := "Hello, World!"
// 使用 strings 包的方法
fmt.Println(strings.Contains(str, "World")) // true
fmt.Println(strings.Replace(str, "World", "Go", 1)) // Hello, Go!
fmt.Println(strings.Split(str, ",")) // [Hello World!]
// 字符串长度
fmt.Println(len(str)) // 13
// 字符串连接
newStr := str + " How are you?"
fmt.Println(newStr) // Hello, World! How are you?
}
这只是 Go 语言中字符串处理的一部分功能。更多详细的功能可以在官方文档中找到。