用 go-commons 高效处理字符串 - 教程

在 Go 开发中,字符串处理无处不在:数据清理、格式转换、日志输出、参数校验……
标准库 strings 足够基础,但很多时候我们需要更贴近业务的封装。
这时 go-commons 就能派上用场,尤其是它的 stringutils 包,提供了丰富的字符串工具方法。


安装方法

直接通过 go get 获取:

go get github.com/Rodert/go-commons

安装完成后,就能在项目里直接导入使用:

import "github.com/Rodert/go-commons/stringutils"

查看文档

  1. GitHub 仓库
    https://github.com/Rodert/go-commons 查看源码和 README。

  2. 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 双支持
  • 功能实用:判空、填充、截断、大小写、替换,一应俱全

相比标准库 stringsgo-commons/stringutils 更关注 开发效率业务常见需求,能让你的代码更简洁、更可读。

posted on 2025-10-30 15:48  wgwyanfs  阅读(1)  评论(0)    收藏  举报

导航