中文字符串遍历
问题
相信很多人都遇到过中文字符串遍历乱码的情况。
遍历字符串一般有两种方式:下标遍历,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]))
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。