获取汉语拼音的首字母

/// <summary>
/// </summary>
  /// <param name="chnstr">string 输入的汉语拼音</param>
  /// <returns>string 返回的首字母</returns>
  public string GetChineseSpell(string str)
  {
       int len = str.Length;
       string myStr = "";
       for(int i=0;i<len;i++)
       {
        myStr += getSpell(str.Substring(i,1));
       }
       return myStr;
  }


static protected 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

posted on 2005-12-06 16:45  小肠与小豆子  阅读(231)  评论(0编辑  收藏  举报

导航