Go语言中字符串的使用方法
2018-05-20 12:31
561 查看
主要讲解Go语言中字符串的使用方法
知识点:
使用range遍历字符串,获取到的是字节,无法获取中文字符,验证了在UTF-8编码中 一个汉字占三个字节
使用 utf8.RuneCountInString(s)) 获取字符串长度,可以正常解析中文,一个中文被当做一个字符。
使用 len(string) 获取字节的长度
使用 []byte(s) 获取字节
使用 []rune(s) 获取字符,可对中文进行转换
以下为代码示例:
知识点:
使用range遍历字符串,获取到的是字节,无法获取中文字符,验证了在UTF-8编码中 一个汉字占三个字节
使用 utf8.RuneCountInString(s)) 获取字符串长度,可以正常解析中文,一个中文被当做一个字符。
使用 len(string) 获取字节的长度
使用 []byte(s) 获取字节
使用 []rune(s) 获取字符,可对中文进行转换
以下为代码示例:
package main import ( "fmt" "unicode/utf8" ) func main() { //默认情况下,Go使用UTF-8编码,此编码下,一个中文汉字占3个字节 //GBK、GB2312收编的汉字占2个字节, // 严格地用iso8859-1无法表示汉字,只能转为问号。 s := "Yes我爱我家!" // UTF-8 fmt.Println(s) for _, b := range []byte(s) { fmt.Printf("%X ", b) //59 65 73 E6 88 91 E7 88 B1 E6 88 91 E5 AE B6 21 } fmt.Println() //下面这种遍历方式 是按字节 来进行计算的 for i, ch := range s { // ch is a rune // 会将字符转换为 unicode 编码,unicode中一个 汉字长度为两个字节 fmt.Printf("(%d %X) ", i, ch) } fmt.Println() //将字符串的每一个字符转为 rune ,会达到预期效果 fmt.Println("Rune count:", utf8.RuneCountInString(s)) //Rune count: 8 bytes := []byte(s) for len(bytes) > 0 { ch, size := utf8.DecodeRune(bytes) bytes = bytes[size:] fmt.Printf("%c ", ch) //Y e s 我 爱 我 家 ! } fmt.Println() for i, ch := range []rune(s) { fmt.Printf("(%d %c) ", i, ch) //(0 Y) (1 e) (2 s) (3 我) (4 爱) (5 我) (6 家) (7 !) } fmt.Println() }
相关文章推荐
- Go语言结构体定义和使用方法
- Go语言使用组合的方式实现多继承的方法
- go语言使用RC4加密的方法
- Go语言常用字符串处理方法实例汇总
- 浅析Go语言编程当中映射和方法的基本使用
- Go语言转换所有字符串为大写或者小写的方法
- Go语言使用MySql的方法
- Go语言实现字符串切片赋值的方法小结
- go语言使用go-sciter创建桌面应用(七) view对象常用方法,文件选择,窗口弹出,请求
- go语言使用scp的方法实例分析
- 在go语言中安装与使用protobuf的方法详解
- 【Go语言】LiteIDE使用的个人使用方法
- GO语言使用orm时,struct作为json输出,指定key的字符串
- Go语言中使用flag包对命令行进行参数解析的方法
- Go语言对字符串进行MD5加密的方法
- go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用
- Go语言按字节截取字符串的方法
- Go语言使用HTTP包创建WEB服务器的方法
- go语言按显示长度截取字符串的方法
- go语言日志记录库简单使用方法实例分析