0


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

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

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

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

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

var info = new StringInfo("དིོེུ");
var realLength = info.LengthInTextElements; // realLength = 1

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

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

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

参阅:

  • 2019-11-10-看看藏文里面一共有多少个字吧 - huangtengxiao
  • 2019-11-10-使用StringInfo正确查找字符个数 - huangtengxiao

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。


本文转载自: https://blog.csdn.net/lindexi_gd/article/details/120172952
版权归原作者 lindexi_gd 所有, 如有侵权,请联系我们删除。

“dotnet C# 如何正确获取藏文的字数”的评论:

还没有评论