Golang字符串操作大全
新手学习Golang,想请教大家关于字符串操作的常见用法和技巧。比如:
- 如何高效地进行字符串拼接?
 - 字符串比较时有哪些注意事项?
 - 常用的字符串处理函数有哪些?
 - 中文字符串处理有什么特殊方法吗?
 - 字符串和字节切片如何相互转换? 希望能得到一些实际代码示例和性能优化的建议,谢谢!
 
        
          2 回复
        
      
      
        Golang字符串常用操作:
- 长度:len(str)
 - 遍历:for…range
 - 拼接:+、fmt.Sprintf、strings.Join
 - 分割:strings.Split
 - 包含:strings.Contains
 - 替换:strings.Replace
 - 大小写:ToLower/ToUpper
 - 修剪:strings.Trim
 - 转换:strconv包
 - 子串:str[start:end]
 
注意字符串不可变,操作会生成新字符串。
更多关于Golang字符串操作大全的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Golang字符串操作大全
字符串基础操作
字符串声明和初始化
var str1 string = "Hello"
str2 := "World"
str3 := `多行
字符串`
字符串长度
str := "Hello, 世界"
length := len(str)  // 返回字节数:13
runeCount := utf8.RuneCountInString(str)  // 返回字符数:9
字符串拼接
使用 + 操作符
str1 := "Hello"
str2 := "World"
result := str1 + " " + str2
使用 fmt.Sprintf
name := "Alice"
age := 25
result := fmt.Sprintf("姓名:%s,年龄:%d", name, age)
使用 strings.Builder(高效)
var builder strings.Builder
builder.WriteString("Hello")
builder.WriteString(" ")
builder.WriteString("World")
result := builder.String()
使用 strings.Join
parts := []string{"Go", "语言", "编程"}
result := strings.Join(parts, "-")  // "Go-语言-编程"
字符串分割
按空格分割
str := "Go 语言 编程"
parts := strings.Fields(str)  // ["Go", "语言", "编程"]
按指定分隔符分割
str := "a,b,c,d"
parts := strings.Split(str, ",")  // ["a", "b", "c", "d"]
按分隔符分割,保留空字符串
str := "a,,b,c"
parts := strings.Split(str, ",")  // ["a", "", "b", "c"]
字符串查找和替换
检查是否包含子串
str := "Hello World"
contains := strings.Contains(str, "World")  // true
查找子串位置
str := "Hello World"
index := strings.Index(str, "World")  // 6
lastIndex := strings.LastIndex(str, "l")  // 9
替换字符串
str := "hello world"
newStr := strings.Replace(str, "world", "Go", -1)  // "hello Go"
前缀和后缀检查
str := "example.txt"
hasPrefix := strings.HasPrefix(str, "example")  // true
hasSuffix := strings.HasSuffix(str, ".txt")     // true
字符串转换
大小写转换
str := "Hello World"
lower := strings.ToLower(str)  // "hello world"
upper := strings.ToUpper(str)  // "HELLO WORLD"
字符串修剪
str := "  Hello World  "
trimmed := strings.TrimSpace(str)        // "Hello World"
trimmedLeft := strings.TrimLeft(str, " ") // "Hello World  "
字符串比较
相等比较
str1 := "hello"
str2 := "HELLO"
equal := str1 == str2                    // false
equalIgnoreCase := strings.EqualFold(str1, str2)  // true
字符串遍历
按字节遍历
str := "Hello"
for i := 0; i < len(str); i++ {
    fmt.Printf("%c ", str[i])
}
按字符遍历(推荐)
str := "Hello, 世界"
for _, char := range str {
    fmt.Printf("%c ", char)
}
字符串与字节切片转换
// 字符串转字节切片
str := "Hello"
bytes := []byte(str)
// 字节切片转字符串
newStr := string(bytes)
常用字符串函数
// 重复字符串
repeated := strings.Repeat("Go", 3)  // "GoGoGo"
// 字符串映射
mapped := strings.Map(func(r rune) rune {
    if r == 'a' {
        return 'A'
    }
    return r
}, "abc")  // "Abc"
// 统计出现次数
count := strings.Count("hello", "l")  // 2
这些是Go语言中常用的字符串操作方法,涵盖了字符串处理的大部分需求。
        
      
                    
                    
                    
