Go语言学习第七课-字符串

本文介绍了Go语言中处理字符串的基本方法,特别是如何使用rune处理包含中文等Unicode字符的字符串。文中通过示例展示了如何遍历并打印字符串中的每个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串是最常用的处理文本信息的数据结构,Go语言提供了强大的字符串操作库strings,里面含盖了各种方法。比如分隔字符串,大小写转换之类的,不做详细讲解,其它语言有的,Go语言基本都有,实际开发 时可以直接呼出strings进行查询。

这里主要说一下字符串与rune,我们之前在Go语言的内建变量讲到过rune,rune是Go语言的字符类型。

比如说,我们处理中文字符串时。

	s := "Yes你在干吗呢?"
	fmt.Printf("%s\n",[]byte(s))
for _,b := range []byte(s){
		//每个中文是三字节
		fmt.Printf("%X ",b)
	}

输出结果是59 65 73 E4 BD A0 E5 9C A8 E5 B9 B2 E5 90 97 E5 91 A2 EF BC 9F 21

每个中文是一个三字节的ASCII码,如果我们想逐一得到每个字符,其中一种方法是通过utf8类进行转码

fmt.Println("rune count:",utf8.RuneCountInString(s))
	bytes := []byte(s)
	for len(bytes)>0{
		//解码
		ch, size := utf8.DecodeRune(bytes)
		bytes = bytes[size:]
		fmt.Printf("%c ",ch)
	}

另一种方法是,我们把字符串转成字符数组,得到的就是转码后的utf-8的字符集

for i,ch := range []rune(s){
		//rune是四字节
		fmt.Printf("%d %c",i,ch)
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值