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]) //使用下标
}