0
点赞
收藏
分享

微信扫一扫

golang中的substring

发现golang strings包中没有java string.substring方法,于是尝试了下: 想要在java中实现提取“世”的需求

//java代码
String s = "Hello, 世界";
System.out.println(s.substring(7, 8)); //世

在golang中尝试这样:

//golang代码
s1 := "Hello, 世界"
fmt.Println(s1[7:8]) //�

因为golang按照utf-8编码,一个汉字可能占用3-4个字节,再次尝试:

//golang代码
s1 := "Hello, 世界"
fmt.Println(s1[7:10]) //世

可以看出”世“字占用了3个字节,也就是3个字节构成了一个有效的utf-8码点,但是实际这样会比较麻烦,所以可以先转换成slice:[]rune,然后用string转换下:

//golang代码
s1 := "Hello, 世界"
runes := []rune(s1)
fmt.Println(string(runes[7:8])) //世

完成!

举报

相关推荐

0 条评论