1

go字符串截取笔记

 2 years ago
source link: https://studygolang.com/articles/9449?fr=sidebar
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

go字符串截取笔记

吾爱 · 2017-02-18 04:00:32 · 29323 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2017-02-18 04:00:32 的文章,其中的信息可能已经有所发展或是发生改变。

当我在go语言编程过程中第一次碰到需要截取字符串的时候,首先想到的是 strings 包里面可能有相关方法~

我还是太年轻了,这些年都被脚本语言惯坏了~

好吧,只能自己搞了,思路也很清晰,把字符串转成字节数组,然后使用slice切片得到其中想要截取的一段,最后再通过 T() 强制类型转换还原成字符串,一开始比较简单:

s := "abcdefg"
s = string([]byte(s)[:3])
fmt.Println(s) //得到 "abc"

 似乎简单啊,但如果碰到中文咋办?根据常识,一个中文字符肯定不止一个字节,难道我还得遍历每个字节,判断编码,判断ascii码范围?那也太麻烦了吧,当然如果必须这么处理的话,肯定人已经造过轮子,google一下定有收获。

幸运的是我不需要考虑那么多,除了byte还有另外一个类型rune,使用它完全不用考虑unicode字节问题,一个中文就只站一个数组下标,代码也很简单:

s := "a我cd"
s = string([]rune(s)[:3])
fmt.Println(s) //得到 "a我c"

这么看来,因为slice,字符串截取还是很灵活的 

然而想想php内置那么多方便的函数,果然PHP是世界上最好的语言 O(∩_∩)O~ 


有疑问加站长微信联系(非本文作者)

280

本文来自:开源中国博客

感谢作者:吾爱

查看原文:go字符串截取笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK