zoukankan      html  css  js  c++  java
  • C#生成拼音简码

    1. /// <summary>   
    2.         /// 生成拼音简码   
    3.         /// </summary>   
    4.         /// <param name="unicodeString">Unicode编码字符串</param>   
    5.         /// <returns>拼音简码:string</returns>   
    6.         public static string GetPinyinCode(string unicodeString)   
    7.         {   
    8.             int i = 0;   
    9.             ushort key = 0;   
    10.             string strResult = string.Empty;            //创建两个不同的encoding对象   
    11.             Encoding unicode = Encoding.Unicode;   
    12.             //创建GBK码对象   
    13.             Encoding gbk = Encoding.GetEncoding(936);   
    14.             //将unicode字符串转换为字节   
    15.             byte[] unicodeBytes = unicode.GetBytes(unicodeString);   
    16.             //再转化为GBK码   
    17.             byte[] gbkBytes = Encoding.Convert(unicode, gbk, unicodeBytes);   
    18.             while (i < gbkBytes.Length)   
    19.             {   
    20.                 //如果为数字\字母\其他ASCII符号   
    21.                 if (gbkBytes <= 127)   
    22.                 {   
    23.                     strResult = strResult + (char)gbkBytes;   
    24.                     i++;   
    25.                 }  
    26.                 #region 否则生成汉字拼音简码,取拼音首字母   
    27.                 else  
    28.                 {   
    29.                     key = (ushort)(gbkBytes * 256 + gbkBytes[i + 1]);   
    30.                     if (key >= '\uB0A1' && key <= '\uB0C4')   
    31.                     {   
    32.                         strResult = strResult + "A";   
    33.                     }   
    34.                     else if (key >= '\uB0C5' && key <= '\uB2C0')   
    35.                     {   
    36.                         strResult = strResult + "B";   
    37.                     }   
    38.                     else if (key >= '\uB2C1' && key <= '\uB4ED')   
    39.                     {   
    40.                         strResult = strResult + "C";   
    41.                     }   
    42.                     else if (key >= '\uB4EE' && key <= '\uB6E9')   
    43.                     {   
    44.                         strResult = strResult + "D";   
    45.                     }   
    46.                     else if (key >= '\uB6EA' && key <= '\uB7A1')   
    47.                     {   
    48.                         strResult = strResult + "E";   
    49.                     }   
    50.                     else if (key >= '\uB7A2' && key <= '\uB8C0')   
    51.                     {   
    52.                         strResult = strResult + "F";   
    53.                     }   
    54.                     else if (key >= '\uB8C1' && key <= '\uB9FD')   
    55.                     {   
    56.                         strResult = strResult + "G";   
    57.                     }   
    58.                     else if (key >= '\uB9FE' && key <= '\uBBF6')   
    59.                     {   
    60.                         strResult = strResult + "H";   
    61.                     }   
    62.                     else if (key >= '\uBBF7' && key <= '\uBFA5')   
    63.                     {   
    64.                         strResult = strResult + "J";   
    65.                     }   
    66.                     else if (key >= '\uBFA6' && key <= '\uC0AB')   
    67.                     {   
    68.                         strResult = strResult + "K";   
    69.                     }   
    70.                     else if (key >= '\uC0AC' && key <= '\uC2E7')   
    71.                     {   
    72.                         strResult = strResult + "L";   
    73.                     }   
    74.                     else if (key >= '\uC2E8' && key <= '\uC4C2')   
    75.                     {   
    76.                         strResult = strResult + "M";   
    77.                     }   
    78.                     else if (key >= '\uC4C3' && key <= '\uC5B5')   
    79.                     {   
    80.                         strResult = strResult + "N";   
    81.                     }   
    82.                     else if (key >= '\uC5B6' && key <= '\uC5BD')   
    83.                     {   
    84.                         strResult = strResult + "O";   
    85.                     }   
    86.                     else if (key >= '\uC5BE' && key <= '\uC6D9')   
    87.                     {   
    88.                         strResult = strResult + "P";   
    89.                     }   
    90.                     else if (key >= '\uC6DA' && key <= '\uC8BA')   
    91.                     {   
    92.                         strResult = strResult + "Q";   
    93.                     }   
    94.                     else if (key >= '\uC8BB' && key <= '\uC8F5')   
    95.                     {   
    96.                         strResult = strResult + "R";   
    97.                     }   
    98.                     else if (key >= '\uC8F6' && key <= '\uCBF9')   
    99.                     {   
    100.                         strResult = strResult + "S";   
    101.                     }   
    102.                     else if (key >= '\uCBFA' && key <= '\uCDD9')   
    103.                     {   
    104.                         strResult = strResult + "T";   
    105.                     }   
    106.                     else if (key >= '\uCDDA' && key <= '\uCEF3')   
    107.                     {   
    108.                         strResult = strResult + "W";   
    109.                     }   
    110.                     else if (key >= '\uCEF4' && key <= '\uD188')   
    111.                     {   
    112.                         strResult = strResult + "X";   
    113.                     }   
    114.                     else if (key >= '\uD1B9' && key <= '\uD4D0')   
    115.                     {   
    116.                         strResult = strResult + "Y";   
    117.                     }   
    118.                     else if (key >= '\uD4D1' && key <= '\uD7F9')   
    119.                     {   
    120.                         strResult = strResult + "Z";   
    121.                     }   
    122.                     else  
    123.                     {   
    124.                         strResult = strResult + "?";   
    125.                     }   
    126.                     i = i + 2;   
    127.                 }  
    128.                 #endregion   
    129.             }//end while   
    130.             return strResult;   
    131.         }  
  • 相关阅读:
    vijos p1782——借教室(noip2012提高组第2题)
    vijos p1781——同余方程(noip2012提高组第1题)
    vijos p1905——生活大爆炸版 石头剪刀布(noip2014提高组第一题)
    URAL_1018 二叉苹果树
    b_lc_统计同构子字符串的数目(找规律 / dp)
    a_lc_完成所有工作的最短时间(暴搜 / 状压)
    lc_b_栈和队列设计(都需要不断踢出非法元素的过程)
    a_lc_缺失的第一个整数 I~II(暴力 / 不断放到正确位置)
    b_lc_最短无序连续子数组(暴力 / )
    b_lc_把二叉搜索树转换为累加树(逆中序遍历 / 迭代)
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2007686.html
Copyright © 2011-2022 走看看