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());
}

參閱:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM