golang 查找中文字符串长度

发布时间:2024-10-02 19:54:13

Golang是一种高性能、开发效率高的编程语言,广泛应用于各个领域。在Golang中,字符串是一种重要的数据类型,并且经常需要处理中文字符串。在本文中,将探讨如何查找中文字符串的长度。

使用len()函数获取字符串长度

在Golang中,可以使用len()函数来获取字符串的字节长度。例如:

str := "Hello, 你好"
length := len(str)
fmt.Println(length) // 输出:11

上述代码中,字符串"Hello, 你好"共有11个字节,其中英文字符占1个字节,中文字符占3个字节。因此,通过len()函数获取到的长度为11。

使用utf8.RuneCountInString()函数获取字符串长度

虽然使用len()函数可以获取字符串的字节长度,但对于包含中文字符的字符串,如果想要获取其中的中文字符数量,可以使用utf8包中的RuneCountInString()函数。例如:

str := "Hello, 你好"
length := utf8.RuneCountInString(str)
fmt.Println(length) // 输出:8

上述代码中,字符串"Hello, 你好"共有8个字符,其中包括5个英文字符和3个中文字符。通过utf8.RuneCountInString()函数获取到的长度为8。

使用range遍历获取中文字符数量

除了使用utf8.RuneCountInString()函数外,还可以使用range关键字来遍历字符串的每个字符,以获取其中的中文字符数量。例如:

str := "Hello, 你好"
count := 0
for _, runeValue := range str {
    if unicode.Is(unicode.Scripts["Han"], runeValue) {
        count++
    }
}
fmt.Println(count) // 输出:2

上述代码中,通过range关键字遍历字符串"Hello, 你好"的每个字符,并通过unicode.Is()函数判断每个字符是否为中文字符。如果是中文字符,则计数器count加1。最终,count的值为2,表示字符串中有2个中文字符。

相关推荐