中文字符串遍历
问题
相信很多人都遇到过中文字符串遍历乱码的情况。
遍历字符串一般有两种方式:下标遍历,for...range,如果字符换包含中文,使用下标遍历时则会出现乱码。
解决方法
将字符串转为[]rune类型,再使用下边遍历则不会出现乱码。
package main
import "fmt"
func main(){
//str := "abc"
str := "hi,你好"
//下标遍历
for i,v := range str{
fmt.Printf("str[%d]=%v\n", i, string(v))
}
//for...range遍历
for i:=0; i<len(str); i++{
fmt.Printf("str[%d]=%v\n", i, string(str[i]))
}
//转为[]rune类型,再下边遍历
strRune := []rune(str)
for i:=0; i<len(strRune); i++{
fmt.Printf("strRune[%d]=%v\n", i, string(strRune[i]))
}
}
有疑问加站长微信联系(非本文作者)