加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go语言遍历字符串——获取每一个字符串元素

发布时间:2020-12-16 18:01:56 所属栏目:大数据 来源:网络整理
导读:遍历字符串有下面两种写法。 遍历每一个ASCII字符 遍历 ASCII 字符使用 for 的数值循环进行遍历,直接取每个字符串的下标获取 ASCII 字符,如下面的例子所示。 theme := "狙击 start"for i := 0; i len(theme); i++ { fmt.Printf("ascii: %c %dn",theme[i],t
遍历字符串有下面两种写法。

遍历每一个ASCII字符

遍历 ASCII 字符使用 for 的数值循环进行遍历,直接取每个字符串的下标获取 ASCII 字符,如下面的例子所示。
theme := "狙击 start"

for i := 0; i < len(theme); i++ {
    fmt.Printf("ascii: %c  %dn",theme[i],theme[i])
}
程序输出如下:

ascii: ?? 231
ascii:???? 139
ascii:???? 153
ascii: ?? 229
ascii:???? 135
ascii: ?? 187
ascii:??? 32
ascii: s? 115
ascii: t? 116
ascii: a? 97
ascii: r? 114
ascii: t? 116


这种模式下取到的汉字“惨不忍睹”。由于没有使用 Unicode,汉字被显示为乱码。

按Unicode字符遍历字符串

同样的内容:
theme := "狙击 start"

for _,s := range theme {
    fmt.Printf("Unicode: %c  %dn",s,s)
}
程序输出如下:

Unicode: 狙? 29401
Unicode: 击? 20987
Unicode:??? 32
Unicode: s? 115
Unicode: t? 116
Unicode: a? 97
Unicode: r? 114
Unicode: t? 116


可以看到,这次汉字可以正常输出了。

总结

  • ASCII 字符串遍历直接使用下标。
  • Unicode 字符串遍历用 for range。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读