答案:Go的strings包提供字符串操作函数,如Contains判断子串、Index查找位置、Split分割、Replace替换、Repeat重复、Trim去空格、HasPrefix/HasSuffix判断前后缀及ToLower/ToUpper转换大小写,所有操作均返回新字符串。

在Golang中,strings 包提供了丰富的函数来处理和操作字符串。由于Go中的字符串是不可变的字节序列,所有操作都会返回新的字符串,而不会修改原字符串。掌握 strings 包的核心方法,能显著提升文本处理效率。
判断字符串是否存在子串
常用 strings.Contains 判断一个字符串是否包含另一个子串:
-
strings.Contains("hello world", "world")返回 true - 若需忽略大小写,可先统一转为小写:
strings.Contains(strings.ToLower(s), "key")
还有两个变体: strings.ContainsAny 判断是否包含多个字符中任意一个; strings.ContainsRune 判断是否包含某个 rune(支持Unicode)。
查找子串位置与分割字符串
使用 strings.Index 获取子串首次出现的位置,未找到返回 -1:
-
strings.Index("go gopher", "go")返回 0 - 反向查找用 strings.LastIndex
分割字符串常用 strings.Split:
立即学习“go语言免费学习笔记(深入)”;
-
strings.Split("a,b,c", ",")返回[]string{"a", "b", "c"} - 若要限制分割数量,使用 strings.SplitN
- 去除前后空格用 strings.TrimSpace,也可自定义去除内容用 strings.Trim
替换与重复字符串
替换子串使用 strings.Replace:
-
strings.Replace("hello old old", "old", "new", 1)只替换一次 - 替换全部用
strings.ReplaceAll("old old", "old", "new")
重复字符串用 strings.Repeat:
-
strings.Repeat("na", 3)得到 "nanana" - 常用于生成占位符或缩进
前缀、后缀判断与大小写转换
检查字符串开头或结尾:
- strings.HasPrefix("http://example.com", "http") 返回 true
- strings.HasSuffix("data.txt", ".txt") 判断文件类型很方便
大小写转换:
-
strings.ToLower("HELLO")→ "hello" -
strings.ToUpper("world")→ "WORLD" - 注意:对非ASCII字符(如德语变音)也基本支持
基本上就这些。熟练使用 strings 包的方法,能让你在日志解析、路径处理、文本过滤等场景中游刃有余。不复杂但容易忽略的是,所有操作都不改变原串,记得接收返回值。










