码迷,mamicode.com
首页 > Windows程序 > 详细

C#编程入门--将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符

时间:2017-09-29 11:36:53      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:pre   returns   get   for   .text   encoding   har   reg   text   

将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符

       #region 将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符
        /// <summary>
        /// 将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static string GetPinYin(string text)
        {
            char pinyin;
            byte[] array;
            System.Text.StringBuilder sb = new System.Text.StringBuilder(text.Length);

            foreach (char c in text)
            {
                pinyin = c;
                array = System.Text.Encoding.Default.GetBytes(new char[] { c });

                if (array.Length == 2)
                {
                    int i = array[0] * 0x100 + array[1];

                    if (i < 0xB0A1) pinyin = c;
                    else if (i < 0xB0C5) pinyin = a;
                    else if (i < 0xB2C1) pinyin = b;
                    else if (i < 0xB4EE) pinyin = c;
                    else if (i < 0xB6EA) pinyin = d;
                    else if (i < 0xB7A2) pinyin = e;
                    else if (i < 0xB8C1) pinyin = f;
                    else if (i < 0xB9FE) pinyin = g;
                    else if (i < 0xBBF7) pinyin = h;
                    else if (i < 0xBFA6) pinyin = g;
                    else if (i < 0xC0AC) pinyin = k;
                    else if (i < 0xC2E8) pinyin = l;
                    else if (i < 0xC4C3) pinyin = m;
                    else if (i < 0xC5B6) pinyin = n;
                    else if (i < 0xC5BE) pinyin = o;
                    else if (i < 0xC6DA) pinyin = p;
                    else if (i < 0xC8BB) pinyin = q;
                    else if (i < 0xC8F6) pinyin = r;
                    else if (i < 0xCBFA) pinyin = s;
                    else if (i < 0xCDDA) pinyin = t;
                    else if (i < 0xCEF4) pinyin = w;
                    else if (i < 0xD1B9) pinyin = x;
                    else if (i < 0xD4D1) pinyin = y;
                    else if (i < 0xD7FA) pinyin = z;
                }

                sb.Append(pinyin);
            }

            return sb.ToString();
        }
        #endregion

 

C#编程入门--将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符

标签:pre   returns   get   for   .text   encoding   har   reg   text   

原文地址:http://www.cnblogs.com/bmbh/p/7610224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!