golang字符串截取
1. 截取普通字符串 - 直接当成数组切片
str := "XHelloWorldX" content := str[1 : len(str)-1] fmt.Println(content)
或者 - 转换为数组(有声明内部变量)切片
s := "abcdefg" s = string([]byte(s)[:3]) fmt.Println(s) //得到 "abc"
2. 截取带中文字符串
一个中文字符肯定不止一个字节,难道我还得遍历每个字节,判断编码,那也太麻烦了吧。 我们不需要考虑那么多,除了byte还有另外一个类型rune,使用它完全不用考虑unicode字节问题,一个中文就只占一个数组下标。
str := "a中文cd" str = string([]rune(str)[:4]) fmt.Println(str)
最好的截取方式是:
string([]rune(str)[2:4])
左闭右开哦
也就是上面截取的字符数组的下标是 2 和 3 ,也就是 文c
3. 截取字符串时候,推荐直接用 [ ]rune 截取就可以了,rune 是 int32 ,而 byte 是 uint8 , rune 可以标识4个字节而 utf8 编码表 4 个字节已经可以表示所有字符了
阮一峰 字符编码笔记:ASCII,Unicode 和 UTF-8 https://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
转载自:
https://juejin.im/post/5c8a45dee51d455bb15c2045 https://blog.csdn.net/zf766045962/article/details/90383377
I can see a bigger world.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言