为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取字符串中的字符数

如何获取字符串中的字符数

Go
小怪兽爱吃肉 2021-05-11 17:57:20
如何在Go中获取字符串的字符数?例如,如果我有一个字符串,则"hello"该方法应返回5。我看到len(str)返回的字节数,而不是字符的数量,以便len("£")返回2而不是1,因为£被编码有在UTF-8的两个字节。
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

有一种方法可以通过将字符串转换为[] rune来获得不带任何包的符文计数len([]rune(YOUR_STRING)):


package main


import "fmt"


func main() {

    russian := "Спутник и погром"

    english := "Sputnik & pogrom"


    fmt.Println("count of bytes:",

        len(russian),

        len(english))


    fmt.Println("count of runes:",

        len([]rune(russian)),

        len([]rune(english)))


}

字节数30 16


符文数16 16


查看完整回答
反对 回复 2021-05-17
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

有几种获取字符串长度的方法:


package main


import (

    "bytes"

    "fmt"

    "strings"

    "unicode/utf8"

)


func main() {

    b := "这是个测试"

    len1 := len([]rune(b))

    len2 := bytes.Count([]byte(b), nil) -1

    len3 := strings.Count(b, "") - 1

    len4 := utf8.RuneCountInString(b)

    fmt.Println(len1)

    fmt.Println(len2)

    fmt.Println(len3)

    fmt.Println(len4)


}


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信