Go语言字符串不可变,操作时需注意性能;少量拼接用+,大量用strings.Builder;查找可用Contains、HasPrefix等;分割用Split,组合用Join;处理输入可转大小写、去空格,结合EqualFold安全比较。

Go语言中的字符串(string)是不可变的字节序列,通常用来表示文本。由于其不可变性,每次对字符串的操作都会生成新的字符串。掌握基础处理技巧能有效提升开发效率和程序性能。
1. 字符串连接:选择合适的方法
在Go中拼接字符串有多种方式,应根据场景选择最合适的:
- 使用 + 操作符适用于少量静态拼接,代码简洁
- 大量拼接时推荐 strings.Builder,避免频繁内存分配
- fmt.Sprintf 适合格式化拼接,但性能较低,慎用于循环
var sb strings.Builder
sb.WriteString("Hello")
sb.WriteString(" ")
sb.WriteString("World")
result := sb.String() // "Hello World"
2. 字符串查找与判断
标准库 strings 提供了丰富的查找函数:
- strings.Contains(s, substr) 判断是否包含子串
- strings.HasPrefix(s, prefix) 检查前缀
- strings.HasSuffix(s, suffix) 检查后缀
- strings.Index(s, substr) 返回首次出现的位置,-1 表示未找到
3. 字符串分割与组合
处理CSV、路径或命令行参数时常需分割字符串:
立即学习“go语言免费学习笔记(深入)”;
- strings.Split(s, sep) 按分隔符拆分为切片
- strings.Join(slice, sep) 将字符串切片合并为单个字符串
- 空分隔符可用 "",但注意性能影响
4. 大小写转换与清理
处理用户输入时常用到格式标准化:
- strings.ToLower(s) 转小写
- strings.ToUpper(s) 转大写
- strings.TrimSpace(s) 去除首尾空白字符
- 组合使用可实现安全比较:
strings.EqualFold(strings.TrimSpace(a), b)
基本上就这些。Go的字符串操作简洁高效,关键是理解不可变性带来的影响,合理使用 Builder 和标准库函数,避免不必要的内存开销。不复杂但容易忽略细节。










