在做项目的时候,输入客户的名字,为了方便索引汉字字符串的拼音首字母,作助记码,于是到网上找了一下,还好,有个单个汉字的处理!为了答谢该网友!为了以后的网友,我做了汉字字符串的处理!
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Data;
- namespace WinMarket
- {
- /// <summary>
- /// Classfun 的摘要说明。
- /// </summary>
- public class Classfun
- {
- private string Capstr;
- public Classfun()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- public string ChineseCap(string ChineseStr)
- {
- byte[] ZW = new byte[2];
- long ChineseStr_int;
- string CharStr, ChinaStr = "";
- for (int i = 0; i <= ChineseStr.Length - 1; i++)
- {
- CharStr = ChineseStr.Substring(i, 1).ToString();
- ZW = System.Text.Encoding.Default.GetBytes(CharStr);
- // 得到汉字符的字节数组
- if (ZW.Length == 2)
- {
- int i1 = (short)(ZW[0]);
- int i2 = (short)(ZW[1]);
- ChineseStr_int = i1 * 256 + i2;
- //table of the constant list
- // @#A@#; //45217..45252
- // @#B@#; //45253..45760
- // @#C@#; //45761..46317
- // @#D@#; //46318..46825
- // @#E@#; //46826..47009
- // @#F@#; //47010..47296
- // @#G@#; //47297..47613
- // @#H@#; //47614..48118
- // @#J@#; //48119..49061
- // @#K@#; //49062..49323
- // @#L@#; //49324..49895
- // @#M@#; //49896..50370
- // @#N@#; //50371..50613
- // @#O@#; //50614..50621
- // @#P@#; //50622..50905
- // @#Q@#; //50906..51386
- // @#R@#; //51387..51445
- // @#S@#; //51446..52217
- // @#T@#; //52218..52697
- //没有U,V
- // @#W@#; //52698..52979
- // @#X@#; //52980..53640
- // @#Y@#; //53689..54480
- // @#Z@#; //54481..55289
- if ((ChineseStr_int >= 45217) && (ChineseStr_int <= 45252))
- {
- ChinaStr = "A";
- }
- else if ((ChineseStr_int >= 45253) && (ChineseStr_int <= 45760))
- {
- ChinaStr = "B";
- }
- else if ((ChineseStr_int >= 45761) && (ChineseStr_int <= 46317))
- {
- ChinaStr = "C";
- }
- else if ((ChineseStr_int >= 46318) && (ChineseStr_int <= 46825))
- {
- ChinaStr = "D";
- }
- else if ((ChineseStr_int >= 46826) && (ChineseStr_int <= 47009))
- {
- ChinaStr = "E";
- }
- else if ((ChineseStr_int >= 47010) && (ChineseStr_int <= 47296))
- {
- ChinaStr = "F";
- }
- else if ((ChineseStr_int >= 47297) && (ChineseStr_int <= 47613))
- {
- ChinaStr = "G";
- }
- else if ((ChineseStr_int >= 47614) && (ChineseStr_int <= 48118))
- {
- ChinaStr = "H";
- }
- else if ((ChineseStr_int >= 48119) && (ChineseStr_int <= 49061))
- {
- ChinaStr = "J";
- }
- else if ((ChineseStr_int >= 49062) && (ChineseStr_int <= 49323))
- {
- ChinaStr = "K";
- }
- else if ((ChineseStr_int >= 49324) && (ChineseStr_int <= 49895))
- {
- ChinaStr = "L";
- }
- else if ((ChineseStr_int >= 49896) && (ChineseStr_int <= 50370))
- {
- ChinaStr = "M";
- }
- else if ((ChineseStr_int >= 50371) && (ChineseStr_int <= 50613))
- {
- ChinaStr = "N";
- }
- else if ((ChineseStr_int >= 50614) && (ChineseStr_int <= 50621))
- {
- ChinaStr = "O";
- }
- else if ((ChineseStr_int >= 50622) && (ChineseStr_int <= 50905))
- {
- ChinaStr = "P";
- }
- else if ((ChineseStr_int >= 50906) && (ChineseStr_int <= 51386))
- {
- ChinaStr = "Q";
- }
- else if ((ChineseStr_int >= 51387) && (ChineseStr_int <= 51445))
- {
- ChinaStr = "R";
- }
- else if ((ChineseStr_int >= 51446) && (ChineseStr_int <= 52217))
- {
- ChinaStr = "S";
- }
- else if ((ChineseStr_int >= 52218) && (ChineseStr_int <= 52697))
- {
- ChinaStr = "T";
- }
- else if ((ChineseStr_int >= 52698) && (ChineseStr_int <= 52979))
- {
- ChinaStr = "W";
- }
- else if ((ChineseStr_int >= 52980) && (ChineseStr_int <= 53640))
- {
- ChinaStr = "X";
- }
- else if ((ChineseStr_int >= 53689) && (ChineseStr_int <= 54480))
- {
- ChinaStr = "Y";
- }
- else if ((ChineseStr_int >= 54481) && (ChineseStr_int <= 55289))
- {
- ChinaStr = "Z";
- }
- }
- else
- {
- Capstr = ChineseStr;
- break;
- }
- Capstr = Capstr + ChinaStr;
- }
- return Capstr;
- }
- }
- }