go 字符串遍历方式

1、传统方式,按字节遍历。


var str string  = "hello world"
for i := 0; i < len(str) ; i++{
   fmt.Printf("%c \n",str[i]) //使用下标
}
//h
//e
//l
//l
//o
//
//w
//o
//r
//l
//d

2、利用for -range,按字符遍历。

for index,val := range str {
   //index 是下标,val是值
   fmt.Printf("index=%d val=%c \n",index,val)
}
//index=0 val=h
//index=1 val=e
//index=2 val=l
//index=3 val=l
//index=4 val=o
//index=5 val=
//index=6 val=w
//index=7 val=o
//index=8 val=r
//index=9 val=l
//index=10 val=d

3、注意:若字符串中包含中文,那么传统的遍历字符串的方式就是错误,因为传统的对字符串的遍历是按照字节来遍历,在utf-8中,一个汉字是3字节,一个字母是1个字节。解决方法是将str转为[]rune切片:

var str string  = "hello world 北京"
var str2 = []rune(str)
for i := 0; i < len(str2) ; i++{
   fmt.Printf("%c \n",str2[i]) //使用下标
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值