当前位置: 首页 > news >正文

用 go-commons 打造更优雅的字符串处理工具

在日常 Go 开发中,字符串处理是高频操作:分割、裁剪、替换、拼接……如果每次都去写重复逻辑,不仅麻烦,还容易出错。
这时就可以用开源工具库 go-commons,它为我们封装了常用的字符串处理方法,写法简洁、功能丰富。


一、安装 go-commons

直接通过 go get 拉取依赖:

go get github.com/Rodert/go-commons

在代码里引入:

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

二、常见字符串操作示例

下面通过一个完整的 demo 展示 裁剪、分割、替换、拼接、格式化 等常见功能。

package mainimport ("fmt""strings""github.com/Rodert/go-commons/strutil"
)func main() {// 1. 去除首尾空格raw := "   Hello, Go Commons!   "fmt.Println("原始:", raw)fmt.Println("TrimSpace:", strutil.TrimSpace(raw)) // "Hello, Go Commons!"// 2. 判断是否为空empty := "   "fmt.Println("IsBlank(empty):", strutil.IsBlank(empty)) // true// 3. 分割字符串data := "apple,banana,orange,,pear"parts := strutil.Split(data, ",")fmt.Println("Split:", parts) // [apple banana orange pear]// 4. 安全获取数组中的值fmt.Println("GetOrDefault:", strutil.GetOrDefault(parts, 2, "default")) // orangefmt.Println("GetOrDefault:", strutil.GetOrDefault(parts, 10, "default")) // default// 5. 替换敏感信息(脱敏)phone := "13812345678"fmt.Println("MaskMobile:", strutil.MaskMobile(phone)) // 138****5678// 6. 拼接字符串list := []string{"go", "commons", "rocks"}fmt.Println("Join:", strutil.Join(list, "-")) // go-commons-rocks// 7. 大小写处理text := "hello WORLD"fmt.Println("UpperFirst:", strutil.UpperFirst(text)) // Hello WORLDfmt.Println("LowerFirst:", strutil.LowerFirst(text)) // hello WORLD// 8. 驼峰 & 下划线互转camel := "user_name_id"fmt.Println("ToCamel:", strutil.ToCamel(camel)) // UserNameIdsnake := "UserNameId"fmt.Println("ToSnake:", strutil.ToSnake(snake)) // user_name_id// 9. 模糊匹配haystack := "golang is awesome"fmt.Println("ContainsAny:", strutil.ContainsAny(haystack, []string{"java", "go"})) // truefmt.Println("ContainsIgnoreCase:", strutil.ContainsIgnoreCase(haystack, "GOLANG")) // true// 10. 多重替换text2 := "foo bar baz"replacer := map[string]string{"foo": "one","bar": "two","baz": "three",}fmt.Println("ReplaceAll:", strutil.ReplaceAll(text2, replacer)) // one two three// 11. 去重、过滤空字符串arr := []string{"go", "commons", "", "go", "commons"}fmt.Println("Unique:", strutil.Unique(arr)) // [go commons]// 12. 快速生成重复字符串fmt.Println("Repeat:", strutil.Repeat("ha", 3)) // hahaha// 13. 截断字符串longText := "HelloGopherWorld"fmt.Println("Substr(0,5):", strutil.Substr(longText, 0, 5))   // Hellofmt.Println("Substr(5,6):", strutil.Substr(longText, 5, 6))   // Gopherfmt.Println("Substr(-5,5):", strutil.Substr(longText, -5, 5)) // rWorld
}

三、运行效果

运行上述代码,输出示例(部分):

原始:    Hello, Go Commons!   
TrimSpace: Hello, Go Commons!
IsBlank(empty): true
Split: [apple banana orange pear]
MaskMobile: 138****5678
Join: go-commons-rocks
ToCamel: UserNameId
ToSnake: user_name_id
ContainsAny: true
ReplaceAll: one two three
Unique: [go commons]
Repeat: hahaha
Substr(0,5): Hello

四、总结

相比自己手写 stringsregexp 的各种逻辑,
go-commons 提供了一套更 语义化安全 的工具函数:

  • ✅ 常用功能开箱即用
  • ✅ 更安全的边界处理(避免 panic)
  • ✅ 支持驼峰/下划线、脱敏、过滤、去重等高级功能

如果你在写 Go 项目,经常需要字符串处理,可以直接引入 go-commons,让代码更简洁可读。

http://www.dtcms.com/a/428024.html

相关文章:

  • x86虚拟机中的时钟
  • Genome Med|RAG-HPO做表型注释:学习一下大语言模型怎么作为发文思路
  • 阳江网站建设推广迅雷2t免费空间活动
  • Python 之可变参数作为默认值的坑
  • 高数第一问:极限定义
  • Vue 3 —— L / 11-Vue3全家桶
  • 建设网站审批手续如何编辑 wordpress 主题
  • SLF4J 日志学习
  • 外贸网站推广中山网站手机模板源码下载
  • 网站后台管理模板免费下载网站建设 人性的弱点
  • nodejs动态创建sql server表
  • 做平面设计什么素材网站好使张家港网站建设优化
  • Java 进阶--函数式编程
  • 《道德经》第九章
  • 网站首页怎么做ps中国营销传播网
  • 镇江网友之家百度上如何做优化网站
  • 网站分辨率自适应代码模板网站定制网站
  • 建设网站的网站安全建设银行网站怎么修改手机号码吗
  • 网站后台可以做两个管理系统么wordpress wpenqueuestyle
  • 两种常见的ACM风格笔试题
  • 图神经网络分享系列-transe(Translating Embeddings for Modeling Multi-relational Data) (一)
  • ENVI系列教程(十九)——目标探测与识别
  • 校园超市网站开发整站优seo排名点击
  • 服务器放n个网站自己做鞋子网站
  • Spring核心 - 控制反转 IOC , 用来大量例子来解释
  • 关键词查询的分析网站有网打不开网页咋回事
  • 大型电子商务网站建设成本双流区的规划建设局网站
  • 从引流到生态:排队免单如何重构商家私域流量?
  • 云网站制作的流程图烟台网站制作厂家联系方式
  • 做视频网站要多大的主机中国建设人才信息网查