04 go语言_字符和字符串处理

该篇博客探讨了Go语言中字符串与字符(rune)的关系,通过示例展示了如何使用range遍历字符串,获取utf8编码的字符数量,以及如何进行其他字符串操作,如Fields、Split、Join、Contains、Index、ToLower、ToUpper、Trim等。同时,还介绍了如何转换字节和rune之间的相互操作。
摘要由CSDN通过智能技术生成

1、rune相当于go的char:
1-1、使用range 遍历 pos,rune对
1-2、使用utf8.RuneCountInString获得字符数量
1-3、使用len获取字节长度
1-4、使用[]byte获得字节
2、其他字符串操作
2-1、Fields、Split、Join
2-2、Contains、Index
2-3、ToLower、ToUpper
2-4、Trim、TrimRight、TrimLeft

func stringRuneFun()  {
		s := "月黑见渔灯"
		for _,b := range []byte(s){
			fmt.Printf("%X ",b)
			/*
				E6 9C 88 E9 BB 91 E8 A7 81 E6 B8 94 E7 81 AF
			*/
		}
		fmt.Println()
		for i,ch := range []byte(s) {
			fmt.Printf("(%d %X) ",i,ch)
			/*
			(0 E6) (1 9C) (2 88) (3 E9) (4 BB) (5 91) (6 E8) (7 A7) (8 81) (9 E6) (10 B8) (11 94) (12 E7) (13 81) (14 AF)
			*/
		}
		fmt.Println()
		fmt.Println("Rune count: ",utf8.RuneCountInString(s))	// Rune count:  5
		bytes := []byte(s)
		for len(bytes)>0 {
			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)	// (0 月)(1 黑)(2 见)(3 渔)(4 灯)
		}
		fmt.Println()
	}
	func main {
		stringRuneFun()
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值