获得汉字字符串拼音首字母 C#版

转载 2007年10月03日 19:24:00

获取字符串中的汉字拼音首字母(根据http://blog.csdn.net/iwebsms/archive/2004/09/28/119851.aspx修改)


可能代码比较臃肿,希望有朋友再帮忙改正


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


  //得到单个字符的首字母
  private String GetOneIndex(String OneIndexTxt)
  {
   if(Convert.ToChar(OneIndexTxt)>=0 && Convert.ToChar(OneIndexTxt)<256)
    return OneIndexTxt;
   else
   {
    Encoding gb2312 = Encoding.GetEncoding("gb2312");
    byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
    byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
                return GetX(Convert.ToInt32(
     String.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[0])-160)
     + String.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[1])-160)
     ));
   }
 
  }
  

  //根据区位得到首字母
  private String GetX(int GBCode)
  {   
   if(GBCode >= 1601 && GBCode < 1637)return "A";
   if(GBCode >= 1637 && GBCode < 1833)return "B";
   if(GBCode >= 1833 && GBCode < 2078)return "C";
   if(GBCode >= 2078 && GBCode < 2274)return "D";
   if(GBCode >= 2274 && GBCode < 2302)return "E";
   if(GBCode >= 2302 && GBCode < 2433)return "F";
   if(GBCode >= 2433 && GBCode < 2594)return "G";
   if(GBCode >= 2594 && GBCode < 2787)return "H";
   if(GBCode >= 2787 && GBCode < 3106)return "J";
   if(GBCode >= 3106 && GBCode < 3212)return "K";
   if(GBCode >= 3212 && GBCode < 3472)return "L";
   if(GBCode >= 3472 && GBCode < 3635)return "M";
   if(GBCode >= 3635 && GBCode < 3722)return "N";
   if(GBCode >= 3722 && GBCode < 3730)return "O";
   if(GBCode >= 3730 && GBCode < 3858)return "P";
   if(GBCode >= 3858 && GBCode < 4027)return "Q";
   if(GBCode >= 4027 && GBCode < 4086)return "R";
   if(GBCode >= 4086 && GBCode < 4390)return "S";
   if(GBCode >= 4390 && GBCode < 4558)return "T";
   if(GBCode >= 4558 && GBCode < 4684)return "W";
   if(GBCode >= 4684 && GBCode < 4925)return "X";
   if(GBCode >= 4925 && GBCode < 5249)return "Y";
   if(GBCode >= 5249 && GBCode <= 5589)return "Z";
   if(GBCode >= 5601 && GBCode <= 8794)
   {
    String CodeData = "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmr"
     + "ybywwccgznkydgttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffss"
     + "pybgmxjbbyglbhlssmzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgd"
     + "nzcbwhgxhqkmwfbpbqdtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnma"
     + "eddksjngkcsgxlhzaybdbtsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqt"
     + "rbcjthztqfrxchxmcjcjlxqgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpx"
     + "jqsrmebwgjlbjslyysmdxlclqkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbj"
     + "flqgdzyqcaxbkclecjsznslyzhlxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdj"
     + "mmzngmmccgwzszxsjbznmlzdthcqydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaql"
     + "cdhjjasprchngjnlhlyyqyhwzpnccgwwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfc"
     + "xyhlschycjqppqagmnyxpfrkssbjlyxyjjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajc"
     + "xlypdccwqocwkccsbnhcpdyznbcyytyckskybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtj"
     + "hppqpqscfymmcmgbmhglgsllysdllljpchmjhwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxom"
     + "yqknmyblrthbcftpmgyxlchlhlzylxgsssscclsldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhd"
     + "chqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkbjzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcb"
     + "nmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwkybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljs"
     + "xlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycwcjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzl"
     + "jpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqzlclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczh"
     + "gyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznwczcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycy"
     + "hbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsbgbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyql"
     + "dkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsdllyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyy"
     + "whmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdkdjhnnyzqqfnqdmmgnydxmjgdhcdycbffallztd"
     + "ltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjynhprsjmkmpcklgdbqtfzswtfgglyplljzhgjj"
     + "gypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqgsdzsctarlltkzlgecllkjljjaqnbdggghf"
     + "jtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhrbjsnbrgjhxpdgdjybzgdlgcsezgxlblg"
     + "yxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljscmbjhblyjlycblydpdqysxktbytdkd"
     + "xjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakgjgyhheznmshrphqqjchgmfprxcjg"
     + "dychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqammmycctbshcptxxzzsmphfshmclm"
     + "ldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldgdzdblzkycqnncsybzbfglzzx"
     + "swmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzygcdxmzysctlkphtxhtlbjxj"
     + "lxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgzgszzqjxlwtjpfsyaslcj"
     + "btckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbsaqdgylbxmmygszldyd"
     + "jmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz";
    String _gbcode = GBCode.ToString();
    int pos = (Convert.ToInt16(_gbcode.Substring(0,2))-56)*94+Convert.ToInt16(_gbcode.Substring(_gbcode.Length-2,2));
    return CodeData.Substring(pos-1,1);
   } 
   return " ";
  } 

相关文章推荐

完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数

http://www.itpub.net/forum.php?mod=viewthread&tid=1514856&page=1&extra=#pid18581463   使用以下地址的无法获得完...
  • e_wsq
  • e_wsq
  • 2011年11月24日 23:56
  • 5262

c#将中文转换成拼音,以空格隔开,全拼,获取汉字首字母,PinyinHelper

将中文转换成拼音: 。支持以空格隔开 。支持全拼 。支持获取汉字首字母 using System; using System.Collections.Generic; using System.Tex...
  • dhfekl
  • dhfekl
  • 2013年09月01日 15:54
  • 1798

C# 获取汉字的拼音首字母和全拼(含源码)

C# 获取汉字的拼音首字母一种是把所有中文字符集合起来组成一个对照表;另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母。碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手动...

C#获取汉字首字母,多音拼音

ChineseChar类可在这里找到DLL http://download.csdn.net/detail/qq873113580/6033615   全部代码 using Microsoft.Int...

完善C#汉字转拼音首字母代码

最近写一个小的程序,需要用到根据汉字自动生成拼音首字母的代码,从网上搜了好多地方都大概找到了下面的代码。但代码存在问题如下:有些常用的汉字无法识别(例如汉字琦、闫、岚等等),包括全椒的括号等特殊字符。...

c#获取汉字的首字母和拼音全

  • 2010年12月10日 14:52
  • 44KB
  • 下载

获得汉字拼音的首字母和全拼

/** * 获得汉字拼音的首字母和全拼 * 通过使用开源pinyin4j.jar包(在http://pinyin4j.sourceforge.net中可以获得)  */import net.sourc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获得汉字字符串拼音首字母 C#版
举报原因:
原因补充:

(最多只允许输入30个字)