dongyi2889
2016-04-29 01:41 阅读 77
已采纳

计算golang字符串中的字符

I am trying to count "characters" in go. That is, if a string contains one printable "glyph", or "composed character" (or what someone would ordinarily think of as a character), I want it to count 1. For example, the string "Hello, 世

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    dsam70528 dsam70528 2019-03-13 17:54

    I wrote a package that allows you to do this: https://github.com/rivo/uniseg. It breaks strings according to the rules specified in Unicode Standard Annex #29 which is what you are looking for. Here is how you would use it in your case:

    package main
    
    

    import (
    "fmt"

    "github.com/rivo/uniseg"
    

    )

    func main() {
    fmt.Println(uniseg.GraphemeClusterCount("Hello, 世

    点赞 评论 复制链接分享
  • drcvvkx914772 drcvvkx914772 2016-04-29 02:23

    Reference to the example of API document. https://golang.org/pkg/unicode/utf8/#example_DecodeLastRuneInString

    package main
    
    

    import (
    "fmt"
    "unicode/utf8"
    )

    func main() {
    str := "Hello, 世

    点赞 评论 复制链接分享
  • drnysdnnb2909701 drnysdnnb2909701 2016-04-29 13:42

    Have you tried strings.Count?

    package main
    
    

    import (
    "fmt"
    "strings"
    )

    func main() {
    fmt.Println(strings.Count("Hello, 世

    点赞 评论 复制链接分享

相关推荐