zoukankan      html  css  js  c++  java
  • 【转】取得汉字拼音的首字母

            有的项目中,往往我们会需要得到某一字段的首字符做为拼音码,下边的类基本可以实现我们的要求!

    /// <summary>
        /// 取得汉字拼音的首字母
        /// </summary>
        public class ChineseSpell
        {
            /// <summary>
            /// 取得汉字拼音的首字母
            /// </summary>
            /// <param name="strText">汉字串</param>
            /// <returns>汉字串的首字母串</returns>
            public static string GetChineseSpell(string strText)
            {
                int len = strText.Length;
                StringBuilder myStr = new StringBuilder();
                for (int i = 0; i < len; i++)
                {
                    myStr.Append(GetSpell(strText.Substring(i, 1)));
                }
                return myStr.ToString();
            }

            /// <summary>
            /// 取得一个汉字的拼音首字母
            /// </summary>
            /// <param name="cnChar">一个汉字</param>
            /// <returns>首字母</returns>
            private static 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)
                        {  

                                  

    ///byte[] arr = new byte[] { (byte)(65 + i) };
    ///return Encoding.Default.GetString(arr,0,arr.Length);//在.net compact framework 环境下用这个代贴下边的

     

    return Encoding.Default.GetString( new byte[] { (byte)(65 + i) });

                        }
                    }
                    return "*";
                }
                else return cnChar;
            }
        }

  • 相关阅读:
    CodeForces1152CNeko does Maths
    π的计算公式
    IFS变量对加双引号和不加双引号变量的区别对待
    各种距离
    ADO.NET Data Service 二 绑定数据类
    向客户端注入JavaScript代码
    Ajax ModelPopu and Progress 示例学习
    Sliverlight 入门教程七
    (牛人莫入)Jquery plugin 多文件上传
    自定义控件的验证使用
  • 原文地址:https://www.cnblogs.com/lzh_527/p/1640652.html
Copyright © 2011-2022 走看看