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

public class CLetter
  2{
    private string _string;
    public CLetter(string IndexTxt)
    {
        _string = string.Empty;
        if (IndexTxt.Length == 0) return;
        _string = IndexCode(IndexTxt);
    }
 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 < 1637) return "A";
 42        if (GBCode >= 1637 && GBCode < 1833) return "B";
 43        if (GBCode >= 1833 && GBCode < 2078) return "C";
 44        if (GBCode >= 2078 && GBCode < 2274) return "D";
 45        if (GBCode >= 2274 && GBCode < 2302) return "E";
 46        if (GBCode >= 2302 && GBCode < 2433) return "F";
 47        if (GBCode >= 2433 && GBCode < 2594) return "G";
 48        if (GBCode >= 2594 && GBCode < 2787) return "H";
 49        if (GBCode >= 2787 && GBCode < 3106) return "J";
 50        if (GBCode >= 3106 && GBCode < 3212) return "K";
 51        if (GBCode >= 3212 && GBCode < 3472) return "L";
 52        if (GBCode >= 3472 && GBCode < 3635) return "M";
 53        if (GBCode >= 3635 && GBCode < 3722) return "N";
 54        if (GBCode >= 3722 && GBCode < 3730) return "O";
 55        if (GBCode >= 3730 && GBCode < 3858) return "P";
 56        if (GBCode >= 3858 && GBCode < 4027) return "Q";
 57        if (GBCode >= 4027 && GBCode < 4086) return "R";
 58        if (GBCode >= 4086 && GBCode < 4390) return "S";
 59        if (GBCode >= 4390 && GBCode < 4558) return "T";
 60        if (GBCode >= 4558 && GBCode < 4684) return "W";
 61        if (GBCode >= 4684 && GBCode < 4925) return "X";
 62        if (GBCode >= 4925 && GBCode < 5249) return "Y";
 63        if (GBCode >= 5249 && GBCode <= 5589) return "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(0, 2)) - 56) * 94 + Convert.ToInt16(_gbcode.Substring(_gbcode.Length - 2, 2));
101            return CodeData.Substring(pos - 1, 1);
102        }
103        return " ";
104    }
105}
 

使用:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值