发现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])) //世
完成!
标签:substring,java,string,s1,golang,Hello From: https://blog.51cto.com/thinklili/6177561