Go语言字符串不可变,拼接用+或fmt.Sprintf,大量时用strings.Builder;切割用strings.Split、Fields或切片;格式化用fmt和strconv;判断、替换、大小写操作由strings包提供。

Go语言中字符串操作简单直接,但要注意字符串在Go中是不可变的(immutable),每次操作都会生成新字符串,不会修改原值。
字符串拼接:用+或fmt.Sprintf
最常用的是+运算符,适合少量字符串连接;若涉及变量插值或复杂格式,推荐fmt.Sprintf。
- 用+拼接:直接、高效,但只适用于已知字符串字面量或变量,如"Hello" + " " + name
- 用fmt.Sprintf:支持占位符和类型转换,例如fmt.Sprintf("User: %s, Age: %d", name, age)
- 大量拼接(如循环中)建议用strings.Builder,避免频繁内存分配
字符串切割:用strings包的Split、Fields、Substr
- strings.Split(s, sep):按分隔符切片,返回[]string,如strings.Split("a,b,c", ",") → ["a","b","c"]
- strings.Fields(s):按任意空白字符(空格、制表符、换行等)分割,自动忽略连续空白和首尾空白
- 取子串用s[start:end](注意是字节索引,非rune;含中文时需先转为rune切片再操作)
字符串格式化:fmt.Printf系列与strconv辅助
格式化输出或生成字符串主要靠fmt包,配合strconv处理数字转换更安全。
立即学习“go语言免费学习笔记(深入)”;
- %s(字符串)、%d(十进制整数)、%f(浮点数)、%v(默认格式)最常用
- 控制精度:%.2f保留两位小数,%06d表示至少6位、不足补零
- 数字转字符串优先用strconv.Itoa(int)或strconv.FormatFloat(float),比fmt.Sprintf("%d", n)略快且语义明确
实用小技巧:判断、替换与大小写
日常高频操作也常被归入“字符串处理”范畴,strings包已覆盖大部分需求:










