ASP.NET获取汉字拼音的首字母

来源:互联网 发布:微信充值琴岛通的软件 编辑:程序博客网 时间:2024/03/28 18:13
代码
 #region GetChineseSpell获取汉字拼音的第一个字母
         //获取汉字拼音的第一个字母
          static public string GetChineseSpell(string strText)
         {
             int len = strText.Length;
             string myStr = "";
             for (int i = 0; i < len; i++)
             {
                 myStr += getSpell(strText.Substring(i, 1));
             }
             return myStr;
         }
 
         static public string[] GetChineseSpell(string[] strText)
         {
             int len = strText.Length;
             string[] myStr = null;
             for (int i = 0; i < len; i++)
             {
                 myStr[i] = getSpell(strText[i]);
             }
             return myStr;
         }
 
         static public string getSpell(string cnChar)
         {
             byte[] arrCN = Encoding.Default.GetBytes(cnChar);
             if (arrCN.Length > 1)
             {
                 int area = (short)arrCN[0];
                 int pos = (short)arrCN[1];
                 int code = (area << 8) + pos;
                 int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
                 for (int i = 0; i < 26; i++)
                 {
                     int max = 55290;
                     if (i != 25) max = areacode[i + 1];
                     if (areacode[i] <= code && code < max)
                     {
                         return Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
                     }
                 }
                 return "*";
             }
             else return cnChar;
         }
         #endregion