1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace TravelB2B.Core.Utils.Text
6 {
7 public class GetInitial
8 {
9 #region --获取联系人姓名的首字母
10
11 /// <summary>
12 /// 获取联系人姓名的首字母
13 /// </summary>
14 /// <param name="name">姓名</param>
15 /// <returns>姓名的首字母</returns>
16 public static string Get_Name_Frist(string name)
17 {
18 try
19 {
20 String _Temp = null;
21 for (int i = 0; i < name.Length; i++)
22 _Temp = _Temp + GetOneIndex(name.Substring(i, 1));
23 return _Temp.Substring(0, 1).ToUpper();
24 }
25 catch {
26 return "0";
27 }
28 }
29 //得到单个字符的首字母
30 private static String GetOneIndex(String OneIndexTxt)
31 {
32 if (Convert.ToChar(OneIndexTxt) >= 0 && Convert.ToChar(OneIndexTxt) < 256)
33 return OneIndexTxt;
34 else
35 {
36 Encoding gb2312 = Encoding.GetEncoding("gb2312");
37 byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
38 byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
39 return GetX(Convert.ToInt32(
40 String.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[0]) - 160)
41 + String.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[1]) - 160)
42 ));
43 }
44
45 }
46
47
48 //根据区位得到首字母
49
50 private static String GetX(int GBCode)
51 {
52 if (GBCode >= 1601 && GBCode < 1637) return "A";
53 if (GBCode >= 1637 && GBCode < 1833) return "B";
54 if (GBCode >= 1833 && GBCode < 2078) return "C";
55 if (GBCode >= 2078 && GBCode < 2274) return "D";
56 if (GBCode >= 2274 && GBCode < 2302) return "E";
57 if (GBCode >= 2302 && GBCode < 2433) return "F";
58 if (GBCode >= 2433 && GBCode < 2594) return "G";
59 if (GBCode >= 2594 && GBCode < 2787) return "H";
60 if (GBCode >= 2787 && GBCode < 3106) return "J";
61 if (GBCode >= 3106 && GBCode < 3212) return "K";
62 if (GBCode >= 3212 && GBCode < 3472) return "L";
63 if (GBCode >= 3472 && GBCode < 3635) return "M";
64 if (GBCode >= 3635 && GBCode < 3722) return "N";
65 if (GBCode >= 3722 && GBCode < 3730) return "O";
66 if (GBCode >= 3730 && GBCode < 3858) return "P";
67 if (GBCode >= 3858 && GBCode < 4027) return "Q";
68 if (GBCode >= 4027 && GBCode < 4086) return "R";
69 if (GBCode >= 4086 && GBCode < 4390) return "S";
70 if (GBCode >= 4390 && GBCode < 4558) return "T";
71 if (GBCode >= 4558 && GBCode < 4684) return "W";
72 if (GBCode >= 4684 && GBCode < 4925) return "X";
73 if (GBCode >= 4925 && GBCode < 5249) return "Y";
74 if (GBCode >= 5249 && GBCode <= 5589) return "Z";
75 if (GBCode >= 5601 && GBCode <= 8794)
76 {
77 String CodeData = "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmr"
78 + "ybywwccgznkydgttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffss"
79 + "pybgmxjbbyglbhlssmzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgd"
80 + "nzcbwhgxhqkmwfbpbqdtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnma"
81 + "eddksjngkcsgxlhzaybdbtsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqt"
82 + "rbcjthztqfrxchxmcjcjlxqgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpx"
83 + "jqsrmebwgjlbjslyysmdxlclqkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbj"
84 + "flqgdzyqcaxbkclecjsznslyzhlxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdj"
85 + "mmzngmmccgwzszxsjbznmlzdthcqydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaql"
86 + "cdhjjasprchngjnlhlyyqyhwzpnccgwwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfc"
87 + "xyhlschycjqppqagmnyxpfrkssbjlyxyjjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajc"
88 + "xlypdccwqocwkccsbnhcpdyznbcyytyckskybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtj"
89 + "hppqpqscfymmcmgbmhglgsllysdllljpchmjhwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxom"
90 + "yqknmyblrthbcftpmgyxlchlhlzylxgsssscclsldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhd"
91 + "chqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkbjzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcb"
92 + "nmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwkybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljs"
93 + "xlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycwcjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzl"
94 + "jpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqzlclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczh"
95 + "gyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznwczcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycy"
96 + "hbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsbgbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyql"
97 + "dkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsdllyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyy"
98 + "whmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdkdjhnnyzqqfnqdmmgnydxmjgdhcdycbffallztd"
99 + "ltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjynhprsjmkmpcklgdbqtfzswtfgglyplljzhgjj"
100 + "gypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqgsdzsctarlltkzlgecllkjljjaqnbdggghf"
101 + "jtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhrbjsnbrgjhxpdgdjybzgdlgcsezgxlblg"
102 + "yxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljscmbjhblyjlycblydpdqysxktbytdkd"
103 + "xjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakgjgyhheznmshrphqqjchgmfprxcjg"
104 + "dychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqammmycctbshcptxxzzsmphfshmclm"
105 + "ldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldgdzdblzkycqnncsybzbfglzzx"
106 + "swmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzygcdxmzysctlkphtxhtlbjxj"
107 + "lxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgzgszzqjxlwtjpfsyaslcj"
108 + "btckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbsaqdgylbxmmygszldyd"
109 + "jmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz";
110 String _gbcode = GBCode.ToString();
111 int pos = (Convert.ToInt16(_gbcode.Substring(0, 2)) - 56) * 94 + Convert.ToInt16(_gbcode.Substring(_gbcode.Length - 2, 2));
112 return CodeData.Substring(pos - 1, 1);
113 }
114 return "0";
115 }
116
117
118
119 #endregion
120
121 }
122 }