Go语言字符串遍历

	s:= "hello,我的世界"
	fmt.Println(len(s))
	fmt.Println(utf8.RuneCountInString(s))
	for i:=0;i<len(s);i++{
		fmt.Printf("%c\t",s[i])
	}
	fmt.Println()
	for _,value:=range s{
		fmt.Printf("%c\t",value)
	}

输出:

18
10
h	e	l	l	o	,	æ	ˆ	‘	ç	š	„	ä	¸	–	ç	•	Œ	
h	e	l	l	o	,	我	的	世	界	

go语言有两种表示字符串的方法:
1.双引号,使用转义字符
2.单引号,不使用转义字符,字符串内容将和赋值保持严格一致

在go语言中,没有字符类型,rune就是字符类型

变量 s 中存放的是字符串的 UTF-8 编码,当你使用 len(s) 函数获取字符串的长度时,获取的是该字符串的 UTF-8 编码长度。通常我们认为,在电脑中存储一个 ASCII 字符需要一个字节,存储一个非 ASCII 字符需要两个字节,这种认为仅仅是针对 Windows 系统中常用的 ANSI 编码而言的,而在 Go 语言中,使用的是 UTF-8 编码,用 UTF-8 编码来存放一个 ASCII 字符依然只需要一个字节,而存放一个非 ASCII 字符,则需要 2个、3个、4个字节,它是不固定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值