前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dotnet C# 如何正确获取藏文的字数

dotnet C# 如何正确获取藏文的字数

作者头像
林德熙
发布2022-08-12 19:25:32
7210
发布2022-08-12 19:25:32
举报
文章被收录于专栏:林德熙的博客林德熙的博客

在咱国内有很多有趣的文字,其中藏文属于有趣的文字里面特别有趣的一项,特别是对于做文本库的同学,大概都知道什么叫合写字吧。合写字的含义就是多个字符一起组成一个字。但是多个字符在内存中,本身就是多个字符对象,以往统计某个字符串的字数,咱简单判断只是拿字符串的字符数量进行获取。这个方法在藏文下肯定是不可行的,藏文的一个字由多个字符组成,因此需要本文介绍的特别的方法

先给大家来一个简单的藏文字 དིོེུ 这个字其实是由 ད + ུ + ི + ོ + ེ 这几个字符组成的

用 string.Length 获取到的 དིོེུ 这个字也是符合预期 5 个字符,当然这也是不符合预期的字数

这是关于语言文化方面的内容,自己写一定是不靠谱的。好在 .NET 里面提供的权威的获取方法,通过 StringInfo 类的辅助,可以获取可视效果下的字符串的字数

代码语言:javascript
复制
var info = new StringInfo("དིོེུ");
var realLength = info.LengthInTextElements; // realLength = 1

通过此即可获取正确的字符长度

额外的,如果想要枚举一个藏文句子的每个藏文的字。那肯定不能使用字符的遍历方式,否则输出就和汉字的遍历输出为偏旁一样了。遍历藏文,需要使用 StringInfo.GetTextElementEnumerator 方法,例子如下

代码语言:javascript
复制
var enumerator = StringInfo.GetTextElementEnumerator("ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ།");
while (enumerator.MoveNext())
{
    Console.WriteLine(enumerator.GetTextElement());
}

参阅:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档