遍历字符串
package main
import "fmt"
func main() {
var str = "Hello北京&"
//1. 按index遍历,这种方式按照字节遍历,对于非ASCII字符会出现乱码。因为"北京"每个字占3个字节
fmt.Println("按index遍历开始")
for i := 0; i < len(str); i++ {
fmt.Printf("%d:%c--", i, str[i])
}
fmt.Println("按index遍历结束")
//2. 用for-range遍历,这种方式是按照字符遍历的,不会出现乱码,但是下标index会出现不连续的情况,它具有不确定性
fmt.Println("for-range遍历开始")
for i, ch := range str {
fmt.Printf("%d:%c--", i, ch)
}
fmt.Println("for-range遍历结束")
//3. 转rune切片遍历
fmt.Println("转rune切片遍历开始")
str2 := []rune(str)
for i := 0; i < len(str2); i++ {
fmt.Printf("%d:%c--", i, str2[i])
}
fmt.Println("\n转rune切片遍历结束")
}