golang字符串长度计算ASCII Unicode

本文探讨了Go语言中len()函数在处理字符串时的特性,特别是对于ASCII字符和UTF-8编码的中文字符的区别。通过示例展示了len()计算ASCII字符串长度的直接性,以及在处理Unicode字符串时为何需要借助utf8.RuneCountInString()来获取正确字符数。总结了在处理不同字符集时应如何选择合适的长度计算方法。
摘要由CSDN通过智能技术生成
package main

import (
	"fmt"
)

func main() {
	tip1 := "genji is ninja"
	fmt.Println(len(tip1))
	tip2 := "小乌龟"
	fmt.Println(len(tip2))
}

go语言的内建函数len(),可以用来获取切片,字符串,通道等的长度。

le()函数的返回值的类型为int,表示字符串的ASCII字符个数或者字节长度

UTF-8每个中文占用3个字节,因此使用len()获的三个中文文字对应的9个字节

UTF-8字符数量

package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	tip1 := "genji is ninja"
	fmt.Println(len(tip1))
	tip2 := "小乌龟"
	fmt.Println(len(tip2))
	fmt.Println(utf8.RuneCountInString("小乌龟"))
	fmt.Println(utf8.RuneCountInString("小乌龟,running!"))
}

总结:ASCII字符长度使用len()函数 Unicode字符串长度使用fmt.println(utf8.RuneCountInString())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值