golang字符串截取操作
字符串处理,截取,中文字符串截取
福利彩蛋:没有好玩的 API 接口?上百款免费接口等你来,免费 API,免费 API 大全
1、字节切片截取
第一个方案,利用 go 的内置切片语法截取字符串:
s := "abcdefghi"
fmt.Println(s[1:6])
//输出bcdef 截取方式[1,6)第一个索引开始到第六个索引位置计算,包含起始位置,不包含结束位置
但是字节切片截取按字节截取,在处理ASCII单字节字符串截取,没有什么比这更完美的方案了,中文往往占多个字节,在 utf8编码中是3个字节,如下程序我们将获得乱码数据
s := "Go语言是最棒的的"
fmt.Println(s[1:6])
//这样输出:o语� 出现了乱码
解决多字节字符截取:将字符串转换为 []rune,然后按切片语法截取,再把结果转成字符串