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 |