取汉字字串的首字母

获取字符串中的汉字拼音首字母

(根据http://blog.csdn.net/iwebsms/archive/2004/09/28/119851.aspx修改)

  1public class CLetter
  2{
  3    private string _string;
  4    public CLetter(string IndexTxt)
  5    {
  6        _string = string.Empty;
  7        if (IndexTxt.Length == 0return;
  8        _string = IndexCode(IndexTxt);
  9    }

 10    public string FirtLetters
 11    {
 12        get return _string; }
 13    }

 14    //返回给定字符串的首字母
 15    private String IndexCode(string IndexTxt)
 16    {
 17        String _Temp = null;
 18        for (int i = 0; i < IndexTxt.Length; i++)
 19            _Temp = _Temp + GetOneIndex(IndexTxt.Substring(i, 1));
 20        return _Temp;
 21    }

 22
 23    //得到单个字符的首字母
 24    private String GetOneIndex(String OneIndexTxt)
 25    {
 26        if (Convert.ToChar(OneIndexTxt) >= 0 && Convert.ToChar(OneIndexTxt) < 256)
 27            return OneIndexTxt;
 28        else
 29        {
 30            Encoding gb2312 = Encoding.GetEncoding("gb2312");
 31            byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
 32            byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
 33            return GetX(Convert.ToInt32(String.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[0]) - 160)
 34                         + String.Format("{0:D2}", Convert.ToInt16(gb2312Bytes[1]) - 160)));
 35        }

 36    }

 37
 38    //根据区位得到首字母
 39    private String GetX(int GBCode)
 40    {
 41        if (GBCode >= 1601 && GBCode < 1637return "A";
 42        if (GBCode >= 1637 && GBCode < 1833return "B";
 43        if (GBCode >= 1833 && GBCode < 2078return "C";
 44        if (GBCode >= 2078 && GBCode < 2274return "D";
 45        if (GBCode >= 2274 && GBCode < 2302return "E";
 46        if (GBCode >= 2302 && GBCode < 2433return "F";
 47        if (GBCode >= 2433 && GBCode < 2594return "G";
 48        if (GBCode >= 2594 && GBCode < 2787return "H";
 49        if (GBCode >= 2787 && GBCode < 3106return "J";
 50        if (GBCode >= 3106 && GBCode < 3212return "K";
 51        if (GBCode >= 3212 && GBCode < 3472return "L";
 52        if (GBCode >= 3472 && GBCode < 3635return "M";
 53        if (GBCode >= 3635 && GBCode < 3722return "N";
 54        if (GBCode >= 3722 && GBCode < 3730return "O";
 55        if (GBCode >= 3730 && GBCode < 3858return "P";
 56        if (GBCode >= 3858 && GBCode < 4027return "Q";
 57        if (GBCode >= 4027 && GBCode < 4086return "R";
 58        if (GBCode >= 4086 && GBCode < 4390return "S";
 59        if (GBCode >= 4390 && GBCode < 4558return "T";
 60        if (GBCode >= 4558 && GBCode < 4684return "W";
 61        if (GBCode >= 4684 && GBCode < 4925return "X";
 62        if (GBCode >= 4925 && GBCode < 5249return "Y";
 63        if (GBCode >= 5249 && GBCode <= 5589return "Z";
 64        if (GBCode >= 5601 && GBCode <= 8794)
 65        {
 66            String CodeData = "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmr"
 67             + "ybywwccgznkydgttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffss"
 68             + "pybgmxjbbyglbhlssmzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgd"
 69             + "nzcbwhgxhqkmwfbpbqdtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnma"
 70             + "eddksjngkcsgxlhzaybdbtsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqt"
 71             + "rbcjthztqfrxchxmcjcjlxqgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpx"
 72             + "jqsrmebwgjlbjslyysmdxlclqkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbj"
 73             + "flqgdzyqcaxbkclecjsznslyzhlxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdj"
 74             + "mmzngmmccgwzszxsjbznmlzdthcqydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaql"
 75             + "cdhjjasprchngjnlhlyyqyhwzpnccgwwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfc"
 76             + "xyhlschycjqppqagmnyxpfrkssbjlyxyjjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajc"
 77             + "xlypdccwqocwkccsbnhcpdyznbcyytyckskybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtj"
 78             + "hppqpqscfymmcmgbmhglgsllysdllljpchmjhwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxom"
 79             + "yqknmyblrthbcftpmgyxlchlhlzylxgsssscclsldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhd"
 80             + "chqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkbjzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcb"
 81             + "nmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwkybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljs"
 82             + "xlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycwcjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzl"
 83             + "jpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqzlclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczh"
 84             + "gyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznwczcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycy"
 85             + "hbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsbgbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyql"
 86             + "dkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsdllyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyy"
 87             + "whmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdkdjhnnyzqqfnqdmmgnydxmjgdhcdycbffallztd"
 88             + "ltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjynhprsjmkmpcklgdbqtfzswtfgglyplljzhgjj"
 89             + "gypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqgsdzsctarlltkzlgecllkjljjaqnbdggghf"
 90             + "jtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhrbjsnbrgjhxpdgdjybzgdlgcsezgxlblg"
 91             + "yxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljscmbjhblyjlycblydpdqysxktbytdkd"
 92             + "xjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakgjgyhheznmshrphqqjchgmfprxcjg"
 93             + "dychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqammmycctbshcptxxzzsmphfshmclm"
 94             + "ldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldgdzdblzkycqnncsybzbfglzzx"
 95             + "swmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzygcdxmzysctlkphtxhtlbjxj"
 96             + "lxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgzgszzqjxlwtjpfsyaslcj"
 97             + "btckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbsaqdgylbxmmygszldyd"
 98             + "jmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz";
 99            String _gbcode = GBCode.ToString();
100            int pos = (Convert.ToInt16(_gbcode.Substring(02)) - 56* 94 + Convert.ToInt16(_gbcode.Substring(_gbcode.Length - 22));
101            return CodeData.Substring(pos - 11);
102        }

103        return " ";
104    }

105}

使用:

CLetter pLetter = new CLetter(“测试”);
MessageBox.Show(pLetter.FirtLetters);

原文地址:https://www.cnblogs.com/lauer0246/p/1377174.html