golang中字符串遍历的三种方式
1. range 遍历
package main
import "fmt"
func main() {
str := "烫烫烫烫"
for i, ch := range str {
fmt.Println(i, ch) //ch的类型为rune 默认utf-8编码,一个汉字三个字节
}
}
输出为:
0 28907
3 28907
6 28907
9 28907
2. for循环遍历
package main
import "fmt"
func main() {
str := "烫"
n := len(str)
for i := 0; i < n; i++ {
ch := str[i] // 依据下标取字符串中的字符,类型为byte
fmt.Println(i, ch)
}
}
输出为utf-8编码,一个汉字字符占三个字节
0 231
1 131
2 171
3.转换为rune输出
package main
import "fmt"
func main() {
str := "烫烫烫烫"
array := []rune(str)
n := len(array)
for i := 0; i < n; i++ {
ch := array[i] // 依据下标取字符串中的字符,类型为byte
fmt.Println(i, ch) //unicode 编码转十进制输出
}
}
golang中字符类型的实际数据类型为uint32,以for循环遍历的方式输出结果都是Unicode编码的