• C#取汉字首字母


    001 #region 取中文首字母
    002 public static string GetFirstLetter(string paramChinese)
    003 {
    004     string strTemp = "";
    005     int iLen = paramChinese.Length;
    006     int i = 0;
    007  
    008     for (i = 0; i <= iLen - 1; i++)
    009     {
    010         strTemp += GetCharSpellCode(paramChinese.Substring(i, 1));
    011     }
    012  
    013     return strTemp;
    014  
    015 }
    016  
    017 /// <summary>
    018 /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
    019 /// </summary>
    020 /// <param name="CnChar">单个汉字</param>
    021 /// <returns>单个大写字母</returns>
    022 private static string GetCharSpellCode(string paramChar)
    023 {
    024     long iCnChar;
    025  
    026     byte[] ZW = System.Text.Encoding.Default.GetBytes(paramChar);
    027  
    028     //如果是字母,则直接返回
    029     if (ZW.Length == 1)
    030     {
    031         return paramChar.ToUpper();
    032     }
    033     else
    034     {
    035         // get the array of byte from the single char
    036         int i1 = (short)(ZW[0]);
    037         int i2 = (short)(ZW[1]);
    038         iCnChar = i1 * 256 + i2;
    039     }
    040  
    041     //expresstion
    042     //table of the constant list
    043     // 'A'; //45217..45252
    044     // 'B'; //45253..45760
    045     // 'C'; //45761..46317
    046     // 'D'; //46318..46825
    047     // 'E'; //46826..47009
    048     // 'F'; //47010..47296
    049     // 'G'; //47297..47613
    050  
    051     // 'H'; //47614..48118
    052     // 'J'; //48119..49061
    053     // 'K'; //49062..49323
    054     // 'L'; //49324..49895
    055     // 'M'; //49896..50370
    056     // 'N'; //50371..50613
    057     // 'O'; //50614..50621
    058     // 'P'; //50622..50905
    059     // 'Q'; //50906..51386
    060  
    061     // 'R'; //51387..51445
    062     // 'S'; //51446..52217
    063     // 'T'; //52218..52697
    064     //没有U,V
    065     // 'W'; //52698..52979
    066     // 'X'; //52980..53640
    067     // 'Y'; //53689..54480
    068     // 'Z'; //54481..55289
    069  
    070     // iCnChar match the constant
    071     if ((iCnChar >= 45217) && (iCnChar <= 45252))
    072     {
    073         return "A";
    074     }
    075     else if ((iCnChar >= 45253) && (iCnChar <= 45760))
    076     {
    077         return "B";
    078     }
    079     else if ((iCnChar >= 45761) && (iCnChar <= 46317))
    080     {
    081         return "C";
    082     }
    083     else if ((iCnChar >= 46318) && (iCnChar <= 46825))
    084     {
    085         return "D";
    086     }
    087     else if ((iCnChar >= 46826) && (iCnChar <= 47009))
    088     {
    089         return "E";
    090     }
    091     else if ((iCnChar >= 47010) && (iCnChar <= 47296))
    092     {
    093         return "F";
    094     }
    095     else if ((iCnChar >= 47297) && (iCnChar <= 47613))
    096     {
    097         return "G";
    098     }
    099     else if ((iCnChar >= 47614) && (iCnChar <= 48118))
    100     {
    101         return "H";
    102     }
    103     else if ((iCnChar >= 48119) && (iCnChar <= 49061))
    104     {
    105         return "J";
    106     }
    107     else if ((iCnChar >= 49062) && (iCnChar <= 49323))
    108     {
    109         return "K";
    110     }
    111     else if ((iCnChar >= 49324) && (iCnChar <= 49895))
    112     {
    113         return "L";
    114     }
    115     else if ((iCnChar >= 49896) && (iCnChar <= 50370))
    116     {
    117         return "M";
    118     }
    119  
    120     else if ((iCnChar >= 50371) && (iCnChar <= 50613))
    121     {
    122         return "N";
    123     }
    124     else if ((iCnChar >= 50614) && (iCnChar <= 50621))
    125     {
    126         return "O";
    127     }
    128     else if ((iCnChar >= 50622) && (iCnChar <= 50905))
    129     {
    130         return "P";
    131     }
    132     else if ((iCnChar >= 50906) && (iCnChar <= 51386))
    133     {
    134         return "Q";
    135     }
    136     else if ((iCnChar >= 51387) && (iCnChar <= 51445))
    137     {
    138         return "R";
    139     }
    140     else if ((iCnChar >= 51446) && (iCnChar <= 52217))
    141     {
    142         return "S";
    143     }
    144     else if ((iCnChar >= 52218) && (iCnChar <= 52697))
    145     {
    146         return "T";
    147     }
    148     else if ((iCnChar >= 52698) && (iCnChar <= 52979))
    149     {
    150         return "W";
    151     }
    152     else if ((iCnChar >= 52980) && (iCnChar <= 53688))
    153     {
    154         return "X";
    155     }
    156     else if ((iCnChar >= 53689) && (iCnChar <= 54480))
    157     {
    158         return "Y";
    159     }
    160     else if ((iCnChar >= 54481) && (iCnChar <= 55289))
    161     {
    162         return "Z";
    163     }
    164     else return ("?");
    165 }
    166  
    167 #endregion

    联盟快卖 商人,生意人,待创业人士在此可以共赢互利 期待你的加入 群号:140809277
  • 相关阅读:
    SQL的内连接与外连接
    for,foreach,iterator的用法和区别
    StringUtils中 isNotEmpty 和isNotBlank的区别
    Context解读
    常用的加密方式
    Android中前景,背景 和 Gravity的设置属性
    使用WebView时软键盘遮挡H5页面解决办法
    Git merge Dev 分支到 master
    C#高级编程笔记 Day 5, 2016年9月 13日 (泛型)
    C#高级编程笔记 Delegate 的粗浅理解 2016年9月 13日
  • 原文地址:https://www.cnblogs.com/yexinw/p/2107487.html
Copyright © 2020-2023  润新知