用 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 mainimport ("fmt""github.com/Rodert/go-commons/stringutils"
)func main() {// 1. 判空与默认值input := " "fmt.Println("IsBlank:", stringutils.IsBlank(input)) // truefmt.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")) // truefmt.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, ' ') + cleanedfmt.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
更关注 开发效率 与 业务常见需求,能让你的代码更简洁、更可读。