C# 獲取漢字的拼音首字母
更新時間:2015年06月26日 15:10:21 投稿:hebedich
一種是把所有中文字符集合起來組成一個對照表;另一種是依照漢字在Unicode編碼表中的排序來確定拼音的首字母。碰到多音字時就以常用的為準(第一種方法中可以自行更改,方法為手動把該漢字移動到對應的拼音首字母隊列,我們這里介紹第二種
獲取漢字拼音的首字母是一個在做項目的過程中經(jīng)常需要用到的功能,今天我們主要來探討下C# 獲取漢字的拼音首字母
/// <summary> /// 在指定的字符串列表CnStr中檢索符合拼音索引字符串 /// </summary> /// <param name="CnStr">漢字字符串</param> /// <returns>相對應的漢語拼音首字母串</returns> public static string GetSpellCode(string CnStr) { string strTemp=""; int iLen=CnStr.Length; int i=0; for (i=0;i<=iLen-1;i++) { strTemp+=GetCharSpellCode(CnStr.Substring(i,1)); } return strTemp; } /// <summary> /// 得到一個漢字的拼音第一個字母,如果是一個英文字母則直接返回大寫字母 /// </summary> /// <param name="CnChar">單個漢字</param> /// <returns>單個大寫字母</returns> private static string GetCharSpellCode(string CnChar) { long iCnChar; byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar); //如果是字母,則直接返回 if (ZW.Length==1) { return CnChar.ToUpper(); } else { // get the array of byte from the single char int i1 = (short)(ZW[0]); int i2 = (short)(ZW[1]); iCnChar = i1*256+i2; } // iCnChar match the constant if ((iCnChar>=45217) && (iCnChar<=45252)) { return "A"; } else if ((iCnChar>=45253) && (iCnChar<=45760)) { return "B"; } else if ((iCnChar>=45761) && (iCnChar<=46317)) { return "C"; } else if ((iCnChar>=46318) && (iCnChar<=46825)) { return "D"; } else if ((iCnChar>=46826) && (iCnChar<=47009)) { return "E"; } else if ((iCnChar>=47010) && (iCnChar<=47296)) { return "F"; } else if ((iCnChar>=47297) && (iCnChar<=47613)) { return "G"; } else if ((iCnChar>=47614) && (iCnChar<=48118)) { return "H"; } else if ((iCnChar>=48119) && (iCnChar<=49061)) { return "J"; } else if ((iCnChar>=49062) && (iCnChar<=49323)) { return "K"; } else if ((iCnChar>=49324) && (iCnChar<=49895)) { return "L"; } else if ((iCnChar>=49896) && (iCnChar<=50370)) { return "M"; }else if ((iCnChar>=50371) && (iCnChar<=50613)) { return "N"; } else if ((iCnChar>=50614) && (iCnChar<=50621)) { return "O"; } else if ((iCnChar>=50622) && (iCnChar<=50905)) { return "P"; } else if ((iCnChar>=50906) && (iCnChar<=51386)) { return "Q"; } else if ((iCnChar>=51387) && (iCnChar<=51445)) { return "R"; } else if ((iCnChar>=51446) && (iCnChar<=52217)) { return "S"; } else if ((iCnChar>=52218) && (iCnChar<=52697)) { return "T"; } else if ((iCnChar>=52698) && (iCnChar<=52979)) { return "W"; } else if ((iCnChar>=52980) && (iCnChar<=53640)) { return "X"; } else if ((iCnChar>=53689) && (iCnChar<=54480)) { return "Y"; } else if ((iCnChar>=54481) && (iCnChar<=55289)) { return "Z"; } else return ("?"); }
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
C# 通過同步和異步實現(xiàn)優(yōu)化做早餐的時間
本文以一個簡單的小例子—如何做一頓早餐及如何優(yōu)化做早餐的時間來讓大家具體了解一下同步和異步方法的區(qū)別,需要的朋友可以參考一下2021-12-12C#中Trim()、TrimStart()、TrimEnd()的用法介紹
這篇文章主要介紹了C#中Trim()、TrimStart()、TrimEnd()的用法,有需要的朋友可以參考一下2014-01-01