方法:首先使用for语句遍历字符串,语法“for i := 0; i < len(字符串变量); i++{}”或“for _, s := range 字符串变量{}”;然后在循环体“{}”里使用“fmt.Printf()”函数逐一输出即可。

本教程操作环境:windows10系统、GO 1.11.2、Dell G3电脑。

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

遍历每一个ASCII字符

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

package main

import "fmt"

func main() {
    theme := "hello php中文网"
	for i := 0; i < len(theme); i++ {
		fmt.Printf("ascii: %c  %d\n", theme[i], theme[i])
	}
}

程序输出如下:

ascii: h  104
ascii: e  101
ascii: l  108
ascii: l  108
ascii: o  111
ascii:    32
ascii: p  112
ascii: h  104
ascii: p  112
ascii: ä  228
ascii: ¸  184
ascii: ­  173
ascii: æ  230
ascii: –  150
ascii: ‡  135
ascii: ç  231
ascii: ½  189
ascii: ‘  145

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

按Unicode字符遍历字符串

同样的内容:

package main

import "fmt"

func main() {
    theme := "hello php中文网"
	for _, s := range theme {
		fmt.Printf("Unicode: %c  %d\n", s, s)
	}
}

程序输出如下:

Unicode: h  104
Unicode: e  101
Unicode: l  108
Unicode: l  108
Unicode: o  111
Unicode:    32
Unicode: p  112
Unicode: h  104
Unicode: p  112
Unicode: 中  20013
Unicode: 文  25991
Unicode: 网  32593

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

总结

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

  • Unicode 字符串遍历用 for range。


go语言中字符串怎么逐个取出