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

遍历字符串有下面两种写法。

遍历每一个ASCII字符

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

theme := "狙击 start"

for i := 0; i < len(theme); i++ {
    fmt.Printf("ascii: %c  %d/n", 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  %d/n", 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。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/21132.html

(0)
上一篇 2021年7月20日
下一篇 2021年7月20日

相关推荐

发表回复

登录后才能评论