6. golang string 类型

本文介绍了Golang中使用UTF-8编码处理字符串的方法,包括len()函数测量字符串长度,以及使用`utf8.RuneCountInString`计算中文字符数和`utf8.DecodeRune`逐个解码字符的示例。
摘要由CSDN通过智能技术生成

1. string 类型

golang string 类型采用utf8 编码,是一种变长的编码方式

strs := "好好学习!!!"
fmt.Printf("len:%v \n", len(strs))

fmt.Printf("\n string : ")
for index, ch := range strs {
    fmt.Printf("(%v %X) ", index, ch)
}

fmt.Printf("\n []byte() : ")

for index, ch := range []byte(strs) {
    fmt.Printf("(%v %X) ", index, ch)
}

fmt.Printf("\n []rune() : ")
for index, ch := range []rune(strs) {
    fmt.Printf("(%v %X) ", index, ch)
}

// 输出如下:
len:15 

 string : (0 597D) (3 597D) (6 5B66) (9 4E60) (12 21) (13 21) (14 21)
 []byte() : (0 E5) (1 A5) (2 BD) (3 E5) (4 A5) (5 BD) (6 E5) (7 AD) (8 A6) (9 E4) (10 B9) (11 A0) (12 21) (13 21) (14 21)
 []rune() : (0 597D) (1 597D) (2 5B66) (3 4E60) (4 21) (5 21) (6 21)

这里对string 遍历的时候,每个字符是变长的,中文占三个字节;
[]byte 转换之后,会遍历每个字节;
[]rune 转换之后,会将每个字符转换rune,也就是int32

2. utf8 编码的常见操作

  • utf8.RuneCountInString 可以统计utf8 字符数
  • utf8.DecodeRune 读取一个utf8 字符
strs := "好好学习!!!"
fmt.Printf("\nRune Count:%v\n", utf8.RuneCountInString(strs))

bts := []byte(strs)
for len(bts) > 0 {
    ch, size := utf8.DecodeRune(bts)
    fmt.Printf("%c ", ch)
    bts = bts[size:]
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值