使用Golang怎么对字符串的字数进行计算

本篇文章给大家分享的是有关使用Golang怎么对字符串的字数进行计算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

浉河ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

golang 可以使用正则和 unicode 包的方法判断。

以下函数 GetStrLength 返回输入的字符串的字数,每个汉字和中文标点算 1 个字数,英文和其他字符算半个字数,不足 1 个字算 1 个。

// GetStrLength 返回输入的字符串的字数,汉字和中文标点算 1 个字数,英文和其他字符 2 个算 1 个字数,不足 1 个算 1个
func GetStrLength(str string) float64 {
 var total float64
 reg := regexp.MustCompile("/·|,|。|《|》|‘|'|”|“|;|:|【|】|?|(|)|、/") 
 for _, r := range str {
 if unicode.Is(unicode.Scripts["Han"], r) || reg.Match([]byte(string(r))) {
 total = total + 1
 } else {
 total = total + 0.5
 }
 } 
 return math.Ceil(total)
}

1:获取字符串字节的个数,并按字节挨个输出

package main

import (
  "fmt"
)

func main() {
  var str string = "abc郑闯" //共9个字节
  charray := []byte(str)  //转换为byte:一个字节对应一个数组元素
  fmt.Println(len(charray)) //获取元素的个数,结果为9
  for _, v := range charray {
    fmt.Printf("%c", v) //输出结果为:abcéé¯
  }
}

输出:

9
abcéé¯

2:获取字符串元素的个数,并按元素挨个输出

package main
import (
  "fmt"
)

func main() {
  a := "I love my family!我爱我的家人!"
  b := []rune(a)   //转换为rune:一个字符对应一个元素 (共24个)
  fmt.Println(len(b)) //获取元素的个数(24)
  for _, v2 := range b {
    fmt.Printf("%c", v2) //输出结果:I love my family!我爱我的家人!
  }
}

输出:

24
I love my family!我爱我的家人!

以上就是使用Golang怎么对字符串的字数进行计算,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


本文题目:使用Golang怎么对字符串的字数进行计算
本文网址:http://bzwzjz.com/article/pjhiic.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设方案 成都网站建设 成都网站制作 做网站设计 成都网站建设 H5网站制作 成都网站设计制作公司 品牌网站建设 网站制作 网站制作报价 成都网站设计公司 移动网站建设 企业网站设计 手机网站设计 成都网站建设 重庆网站制作 成都网站设计 成都商城网站制作 重庆网站建设 成都网站建设 网站制作公司 四川成都网站建设