推荐 使用 strings 这个包处理字符串
package main
import (
"fmt"
"strings"
"unicode/utf8"
)
func main() {
s := "Yes我爱中国!" // UTF-8编码
// 输出的是 16 进制编码的总个数
fmt.Println(len(s))
// 遍历 16 进制编码
for _, b := range []byte(s){
fmt.Printf("%X ", b)
}
fmt.Println()
// 遍历文字
for i, ch := range s { // ch 就是 rune 类型
fmt.Printf("(%d %X)",i ,ch)
}
fmt.Println()
fmt.Println("s 字符总数:", utf8.RuneCountInString(s))
/**
输出每一个字符
但是繁琐
*/
bytes := []byte(s)
for len(bytes) > 0 {
// 转换成 rune 类型
ch, size := utf8.DecodeRune(bytes)
bytes = bytes[size:]
// 输出 字符
fmt.Printf("%c ", ch)
}
fmt.Println()
/**
输出每一个字符
推荐使用
*/
for i, ch := range []rune(s){
fmt.Printf("(%d %c)", i, ch)
}
fmt.Println()
// strings 操作包,有许多针对字符串的函数,推荐使用
// 把英文转换为大写
s1 := strings.ToUpper(s)
fmt.Println(s1)
}
网友评论