字符串处理"/>
Go学习:字符和字符串处理
rune相当于go的char
package mainimport ("fmt""unicode/utf8"
)func main() {s := "Yes我爱宋佳!" // UTF-8编码// Yes我爱宋佳!fmt.Println(s)for _,v := range []byte(s){// 59 65 73 E6 88 91 E7 88 B1 E5 AE 8B E4 BD B3 21fmt.Printf("%X ",v)}fmt.Println()// (0 59) (1 65) (2 73) (3 6211) (6 7231) (9 5B8B) (12 4F73) (15 21)// ch instanceof runefor i,ch := range s{fmt.Printf("(%d %X) ",i,ch)}fmt.Println()// RuneCountInString=> 8fmt.Println("RuneCountInString=>",utf8.RuneCountInString(s))bytes := []byte(s)for len(bytes) > 0 {ch, size := utf8.DecodeRune(bytes)bytes = bytes[size:]// Y e s 我 爱 宋 佳 !fmt.Printf("%c ",ch)}fmt.Println()// rune 相当于go的charfor i,ch := range []rune(s){// (0 Y) (1 e) (2 s) (3 我) (4 爱) (5 宋) (6 佳) (7 !)fmt.Printf("(%d %c) ",i,ch)}
}
- 使用range遍历pos,rune对
- 使用utf8.RuneCountInString获得字符数量
- 使用len获得字节长度
- 使用[]byte获得字节
strings常用操作
package mainimport ("fmt""strings"
)func main() {s := "HelloWorld"str := "llo"str1 := "a"// 判断s是否包含strfmt.Println(strings.Contains(s,str)) // truefmt.Println(strings.Contains(s,str1)) // false// 获取substr再字符串首次出现的下标// 如果不存在返回-1;如果substr是个空串返回0fmt.Println(strings.Index(s,"l")) // 2fmt.Println(strings.Index(s,"a")) // -1fmt.Println(strings.Index(s,"")) // 0// 将字符串中所有的字母小写fmt.Println(strings.ToLower("ABc")) // abc// 将字符串中所有的字母大写fmt.Println(strings.ToUpper("aBc")) // ABC// 去掉首尾与cutset匹配的字符fmt.Println(strings.Trim("abaca","a")) // bac// 去掉左侧与cutset匹配的字符fmt.Println(strings.TrimLeft("abaca","a")) // baca// 去掉右侧与cutset匹配的字符fmt.Println(strings.TrimRight("abaca","a")) // abac
}
更多推荐
Go学习:字符和字符串处理
发布评论