本篇文章给大家分享的是有关使用Golang怎么对字符串的字数进行计算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
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怎么对字符串的字数进行计算,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。