用 go-commons 高效处理字符串 - 教程
在 Go 开发中,字符串处理无处不在:数据清理、格式转换、日志输出、参数校验……
标准库 strings 足够基础,但很多时候我们需要更贴近业务的封装。
这时 go-commons 就能派上用场,尤其是它的 stringutils 包,提供了丰富的字符串工具方法。
安装方法
直接通过 go get 获取:
go get github.com/Rodert/go-commons
安装完成后,就能在项目里直接导入使用:
import "github.com/Rodert/go-commons/stringutils"
查看文档
GitHub 仓库
在 https://github.com/Rodert/go-commons 查看源码和 README。GoDoc 文档
你也可以在 pkg.go.dev 搜索go-commons,那里会自动生成 API 文档,方便查询函数说明和用法。
完整示例代码
下面这段程序展示了 go-commons/stringutils 的常用功能,模拟了一个“用户输入清理 + 日志格式化”的场景:
package main
import (
"fmt"
"github.com/Rodert/go-commons/stringutils"
)
func main() {
// 1. 判空与默认值
input := " "
fmt.Println("IsBlank:", stringutils.IsBlank(input)) // true
fmt.Println("DefaultIfEmpty:", stringutils.DefaultIfEmpty(input, "N/A")) // "N/A"
// 2. 裁剪与截断
raw := " Hello World! "
fmt.Println("Trim:", stringutils.Trim(raw)) // "Hello World!"
fmt.Println("TruncateWithSuffix:", stringutils.TruncateWithSuffix("abcdef", 4, "..")) // "ab.."
// 3. 填充与对齐
fmt.Println("PadLeft:", stringutils.PadLeft("42", 5, '0')) // "00042"
fmt.Println("PadRight:", stringutils.PadRight("Go", 6, '*')) // "Go****"
fmt.Println("Center:", stringutils.Center("Go", 6, '*')) // "**Go**"
// 4. 查找与替换
fmt.Println("ContainsAny:", stringutils.ContainsAny("gopher", "go", "java")) // true
fmt.Println("ReplaceAll:", stringutils.ReplaceAll("aaa-bbb", "a", "x")) // "xxx-bbb"
// 5. 大小写与变换
fmt.Println("Capitalize:", stringutils.Capitalize("hello")) // "Hello"
fmt.Println("Reverse:", stringutils.ReverseString("abc")) // "cba"
// 模拟日志格式化
userInput := " Alice "
cleaned := stringutils.Trim(userInput)
logLine := stringutils.PadRight("User:", 10, ' ') + cleaned
fmt.Println("Log:", logLine) // "User: Alice"
}
运行输出示例:
IsBlank: true
DefaultIfEmpty: N/A
Trim: Hello World!
TruncateWithSuffix: ab..
PadLeft: 00042
PadRight: Go****
Center: **Go**
ContainsAny: true
ReplaceAll: xxx-bbb
Capitalize: Hello
Reverse: cba
Log: User: Alice
✅ 总结
- 安装简单:
go get github.com/Rodert/go-commons - 文档清晰:GitHub + pkg.go.dev 双支持
- 功能实用:判空、填充、截断、大小写、替换,一应俱全
相比标准库 strings,go-commons/stringutils 更关注 开发效率 与 业务常见需求,能让你的代码更简洁、更可读。
浙公网安备 33010602011771号