日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#汉字转换拼音技术详解(高性能)

發布時間:2023/12/9 C# 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#汉字转换拼音技术详解(高性能) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過網上漢字轉換成拼音的代碼,經過本人優化,性能將更加優異。

下面將源代碼貼出。


?

[csharp] view plaincopy
  • public?static?class?ChineseToPinYin??
  • ????????{??
  • ????????????private?static?readonly?Dictionary<int,?string>?CodeCollections?=?new?Dictionary<int,?string>?{??
  • ?{?-20319,?"a"?},?{?-20317,?"ai"?},?{?-20304,?"an"?},?{?-20295,?"ang"?},?{?-20292,?"ao"?},?{?-20283,?"ba"?},?{?-20265,?"bai"?},???
  • {?-20257,?"ban"?},?{?-20242,?"bang"?},?{?-20230,?"bao"?},?{?-20051,?"bei"?},?{?-20036,?"ben"?},?{?-20032,?"beng"?},?{?-20026,?"bi"?}??
  • ,?{?-20002,?"bian"?},?{?-19990,?"biao"?},?{?-19986,?"bie"?},?{?-19982,?"bin"?},?{?-19976,?"bing"?},?{?-19805,?"bo"?},???
  • {?-19784,?"bu"?},?{?-19775,?"ca"?},?{?-19774,?"cai"?},?{?-19763,?"can"?},?{?-19756,?"cang"?},?{?-19751,?"cao"?},?{?-19746,?"ce"?},??
  • ?{?-19741,?"ceng"?},?{?-19739,?"cha"?},?{?-19728,?"chai"?},?{?-19725,?"chan"?},?{?-19715,?"chang"?},?{?-19540,?"chao"?},???
  • {?-19531,?"che"?},?{?-19525,?"chen"?},?{?-19515,?"cheng"?},?{?-19500,?"chi"?},?{?-19484,?"chong"?},?{?-19479,?"chou"?},???
  • {?-19467,?"chu"?},?{?-19289,?"chuai"?},?{?-19288,?"chuan"?},?{?-19281,?"chuang"?},?{?-19275,?"chui"?},?{?-19270,?"chun"?},??
  • ?{?-19263,?"chuo"?},?{?-19261,?"ci"?},?{?-19249,?"cong"?},?{?-19243,?"cou"?},?{?-19242,?"cu"?},?{?-19238,?"cuan"?},???
  • {?-19235,?"cui"?},?{?-19227,?"cun"?},?{?-19224,?"cuo"?},?{?-19218,?"da"?},?{?-19212,?"dai"?},?{?-19038,?"dan"?},?{?-19023,?"dang"?},??
  • ?{?-19018,?"dao"?},?{?-19006,?"de"?},?{?-19003,?"deng"?},?{?-18996,?"di"?},?{?-18977,?"dian"?},?{?-18961,?"diao"?},?{?-18952,?"die"?}??
  • ,?{?-18783,?"ding"?},?{?-18774,?"diu"?},?{?-18773,?"dong"?},?{?-18763,?"dou"?},?{?-18756,?"du"?},?{?-18741,?"duan"?},???
  • {?-18735,?"dui"?},?{?-18731,?"dun"?},?{?-18722,?"duo"?},?{?-18710,?"e"?},?{?-18697,?"en"?},?{?-18696,?"er"?},?{?-18526,?"fa"?},??
  • ?{?-18518,?"fan"?},?{?-18501,?"fang"?},?{?-18490,?"fei"?},?{?-18478,?"fen"?},?{?-18463,?"feng"?},?{?-18448,?"fo"?},?{?-18447,?"fou"?}??
  • ,?{?-18446,?"fu"?},?{?-18239,?"ga"?},?{?-18237,?"gai"?},?{?-18231,?"gan"?},?{?-18220,?"gang"?},?{?-18211,?"gao"?},?{?-18201,?"ge"?},??
  • ?{?-18184,?"gei"?},?{?-18183,?"gen"?},?{?-18181,?"geng"?},?{?-18012,?"gong"?},?{?-17997,?"gou"?},?{?-17988,?"gu"?},?{?-17970,?"gua"?}??
  • ,?{?-17964,?"guai"?},?{?-17961,?"guan"?},?{?-17950,?"guang"?},?{?-17947,?"gui"?},?{?-17931,?"gun"?},?{?-17928,?"guo"?},??
  • {?-17922,?"ha"?},?{?-17759,?"hai"?},?{?-17752,?"han"?},?{?-17733,?"hang"?},?{?-17730,?"hao"?},?{?-17721,?"he"?},?{?-17703,?"hei"?},??
  • ?{?-17701,?"hen"?},?{?-17697,?"heng"?},?{?-17692,?"hong"?},?{?-17683,?"hou"?},?{?-17676,?"hu"?},?{?-17496,?"hua"?},???
  • {?-17487,?"huai"?},?{?-17482,?"huan"?},?{?-17468,?"huang"?},?{?-17454,?"hui"?},?{?-17433,?"hun"?},?{?-17427,?"huo"?},???
  • {?-17417,?"ji"?},?{?-17202,?"jia"?},?{?-17185,?"jian"?},?{?-16983,?"jiang"?},?{?-16970,?"jiao"?},?{?-16942,?"jie"?},???
  • {?-16915,?"jin"?},?{?-16733,?"jing"?},?{?-16708,?"jiong"?},?{?-16706,?"jiu"?},?{?-16689,?"ju"?},?{?-16664,?"juan"?},???
  • {?-16657,?"jue"?},?{?-16647,?"jun"?},?{?-16474,?"ka"?},?{?-16470,?"kai"?},?{?-16465,?"kan"?},?{?-16459,?"kang"?},?{?-16452,?"kao"?},??
  • ?{?-16448,?"ke"?},?{?-16433,?"ken"?},?{?-16429,?"keng"?},?{?-16427,?"kong"?},?{?-16423,?"kou"?},?{?-16419,?"ku"?},?{?-16412,?"kua"?}??
  • ,?{?-16407,?"kuai"?},?{?-16403,?"kuan"?},?{?-16401,?"kuang"?},?{?-16393,?"kui"?},?{?-16220,?"kun"?},?{?-16216,?"kuo"?},???
  • {?-16212,?"la"?},?{?-16205,?"lai"?},?{?-16202,?"lan"?},?{?-16187,?"lang"?},?{?-16180,?"lao"?},?{?-16171,?"le"?},?{?-16169,?"lei"?},???
  • {?-16158,?"leng"?},?{?-16155,?"li"?},?{?-15959,?"lia"?},?{?-15958,?"lian"?},?{?-15944,?"liang"?},?{?-15933,?"liao"?},???
  • {?-15920,?"lie"?},?{?-15915,?"lin"?},?{?-15903,?"ling"?},?{?-15889,?"liu"?},?{?-15878,?"long"?},?{?-15707,?"lou"?},?{?-15701,?"lu"?},??
  • ?{?-15681,?"lv"?},?{?-15667,?"luan"?},?{?-15661,?"lue"?},?{?-15659,?"lun"?},?{?-15652,?"luo"?},?{?-15640,?"ma"?},?{?-15631,?"mai"?},??
  • ?{?-15625,?"man"?},?{?-15454,?"mang"?},?{?-15448,?"mao"?},?{?-15436,?"me"?},?{?-15435,?"mei"?},?{?-15419,?"men"?},???
  • {?-15416,?"meng"?},?{?-15408,?"mi"?},?{?-15394,?"mian"?},?{?-15385,?"miao"?},?{?-15377,?"mie"?},?{?-15375,?"min"?},???
  • {?-15369,?"ming"?},?{?-15363,?"miu"?},?{?-15362,?"mo"?},?{?-15183,?"mou"?},?{?-15180,?"mu"?},?{?-15165,?"na"?},?{?-15158,?"nai"?},???
  • {?-15153,?"nan"?},?{?-15150,?"nang"?},?{?-15149,?"nao"?},?{?-15144,?"ne"?},?{?-15143,?"nei"?},?{?-15141,?"nen"?},?{?-15140,?"neng"?}??
  • ,?{?-15139,?"ni"?},?{?-15128,?"nian"?},?{?-15121,?"niang"?},?{?-15119,?"niao"?},?{?-15117,?"nie"?},?{?-15110,?"nin"?},???
  • {?-15109,?"ning"?},?{?-14941,?"niu"?},?{?-14937,?"nong"?},?{?-14933,?"nu"?},?{?-14930,?"nv"?},?{?-14929,?"nuan"?},?{?-14928,?"nue"?}??
  • ,?{?-14926,?"nuo"?},?{?-14922,?"o"?},?{?-14921,?"ou"?},?{?-14914,?"pa"?},?{?-14908,?"pai"?},?{?-14902,?"pan"?},?{?-14894,?"pang"?},??
  • ?{?-14889,?"pao"?},?{?-14882,?"pei"?},?{?-14873,?"pen"?},?{?-14871,?"peng"?},?{?-14857,?"pi"?},?{?-14678,?"pian"?},???
  • {?-14674,?"piao"?},?{?-14670,?"pie"?},?{?-14668,?"pin"?},?{?-14663,?"ping"?},?{?-14654,?"po"?},?{?-14645,?"pu"?},?{?-14630,?"qi"?},??
  • ?{?-14594,?"qia"?},?{?-14429,?"qian"?},?{?-14407,?"qiang"?},?{?-14399,?"qiao"?},?{?-14384,?"qie"?},?{?-14379,?"qin"?},??
  • ?{?-14368,?"qing"?},?{?-14355,?"qiong"?},?{?-14353,?"qiu"?},?{?-14345,?"qu"?},?{?-14170,?"quan"?},?{?-14159,?"que"?},???
  • {?-14151,?"qun"?},?{?-14149,?"ran"?},?{?-14145,?"rang"?},?{?-14140,?"rao"?},?{?-14137,?"re"?},?{?-14135,?"ren"?},?{?-14125,?"reng"?}??
  • ,?{?-14123,?"ri"?},?{?-14122,?"rong"?},?{?-14112,?"rou"?},?{?-14109,?"ru"?},?{?-14099,?"ruan"?},?{?-14097,?"rui"?},?{?-14094,?"run"?}??
  • ,?{?-14092,?"ruo"?},?{?-14090,?"sa"?},?{?-14087,?"sai"?},?{?-14083,?"san"?},?{?-13917,?"sang"?},?{?-13914,?"sao"?},?{?-13910,?"se"?}??
  • ,?{?-13907,?"sen"?},?{?-13906,?"seng"?},?{?-13905,?"sha"?},?{?-13896,?"shai"?},?{?-13894,?"shan"?},?{?-13878,?"shang"?},???
  • {?-13870,?"shao"?},?{?-13859,?"she"?},?{?-13847,?"shen"?},?{?-13831,?"sheng"?},?{?-13658,?"shi"?},?{?-13611,?"shou"?},??
  • ?{?-13601,?"shu"?},?{?-13406,?"shua"?},?{?-13404,?"shuai"?},?{?-13400,?"shuan"?},?{?-13398,?"shuang"?},?{?-13395,?"shui"?},??
  • ?{?-13391,?"shun"?},?{?-13387,?"shuo"?},?{?-13383,?"si"?},?{?-13367,?"song"?},?{?-13359,?"sou"?},?{?-13356,?"su"?},???
  • {?-13343,?"suan"?},?{?-13340,?"sui"?},?{?-13329,?"sun"?},?{?-13326,?"suo"?},?{?-13318,?"ta"?},?{?-13147,?"tai"?},?{?-13138,?"tan"?},??
  • ?{?-13120,?"tang"?},?{?-13107,?"tao"?},?{?-13096,?"te"?},?{?-13095,?"teng"?},?{?-13091,?"ti"?},?{?-13076,?"tian"?},???
  • {?-13068,?"tiao"?},?{?-13063,?"tie"?},?{?-13060,?"ting"?},?{?-12888,?"tong"?},?{?-12875,?"tou"?},?{?-12871,?"tu"?},???
  • {?-12860,?"tuan"?},?{?-12858,?"tui"?},?{?-12852,?"tun"?},?{?-12849,?"tuo"?},?{?-12838,?"wa"?},?{?-12831,?"wai"?},?{?-12829,?"wan"?}??
  • ,?{?-12812,?"wang"?},?{?-12802,?"wei"?},?{?-12607,?"wen"?},?{?-12597,?"weng"?},?{?-12594,?"wo"?},?{?-12585,?"wu"?},?{?-12556,?"xi"?}??
  • ,?{?-12359,?"xia"?},?{?-12346,?"xian"?},?{?-12320,?"xiang"?},?{?-12300,?"xiao"?},?{?-12120,?"xie"?},?{?-12099,?"xin"?},???
  • {?-12089,?"xing"?},?{?-12074,?"xiong"?},?{?-12067,?"xiu"?},?{?-12058,?"xu"?},?{?-12039,?"xuan"?},?{?-11867,?"xue"?},???
  • {?-11861,?"xun"?},?{?-11847,?"ya"?},?{?-11831,?"yan"?},?{?-11798,?"yang"?},?{?-11781,?"yao"?},?{?-11604,?"ye"?},?{?-11589,?"yi"?},??
  • ?{?-11536,?"yin"?},?{?-11358,?"ying"?},?{?-11340,?"yo"?},?{?-11339,?"yong"?},?{?-11324,?"you"?},?{?-11303,?"yu"?},???
  • {?-11097,?"yuan"?},?{?-11077,?"yue"?},?{?-11067,?"yun"?},?{?-11055,?"za"?},?{?-11052,?"zai"?},?{?-11045,?"zan"?},??
  • ?{?-11041,?"zang"?},?{?-11038,?"zao"?},?{?-11024,?"ze"?},?{?-11020,?"zei"?},?{?-11019,?"zen"?},?{?-11018,?"zeng"?},???
  • {?-11014,?"zha"?},?{?-10838,?"zhai"?},?{?-10832,?"zhan"?},?{?-10815,?"zhang"?},?{?-10800,?"zhao"?},?{?-10790,?"zhe"?},???
  • {?-10780,?"zhen"?},?{?-10764,?"zheng"?},?{?-10587,?"zhi"?},?{?-10544,?"zhong"?},?{?-10533,?"zhou"?},?{?-10519,?"zhu"?},???
  • {?-10331,?"zhua"?},?{?-10329,?"zhuai"?},?{?-10328,?"zhuan"?},?{?-10322,?"zhuang"?},?{?-10315,?"zhui"?},?{?-10309,?"zhun"?},???
  • {?-10307,?"zhuo"?},?{?-10296,?"zi"?},?{?-10281,?"zong"?},?{?-10274,?"zou"?},?{?-10270,?"zu"?},?{?-10262,?"zuan"?},?{?-10260,?"zui"?}??
  • ,?{?-10256,?"zun"?},?{?-10254,?"zuo"?}?};??
  • ????????????///???<summary>???
  • ????????????///???漢字轉拼音???
  • ????????????///???</summary>???
  • ????????????///???<param???name="txt">?需要轉換的漢字?</param>???
  • ????????????///???<returns>?返回漢字對應的拼音?</returns>???
  • ????????????public?static?string?ToPinYin(string?txt)??
  • ????????????{??
  • ????????????????txt?=?txt.Trim();??
  • ????????????????byte[]?arr?=?new?byte[2];???//每個漢字為2字節???
  • ????????????????StringBuilder?result?=?new?StringBuilder();//使用StringBuilder優化字符串連接??
  • ????????????????int?charCode?=?0;??
  • ????????????????int?arr1?=?0;??
  • ????????????????int?arr2?=?0;??
  • ????????????????char[]?arrChar?=?txt.ToCharArray();??
  • ????????????????for?(int?j?=?0;?j?<?arrChar.Length;?j++)???//遍歷輸入的字符???
  • ????????????????{??
  • ????????????????????arr?=?System.Text.Encoding.Default.GetBytes(arrChar[j].ToString());//根據系統默認編碼得到字節碼???
  • ????????????????????if?(arr.Length?==?1)//如果只有1字節說明該字符不是漢字,結束本次循環???
  • ????????????????????{??
  • ????????????????????????result.Append(arrChar[j].ToString());??
  • ????????????????????????continue;??
  • ??
  • ????????????????????}??
  • ????????????????????arr1?=?(short)(arr[0]);???//取字節1???
  • ????????????????????arr2?=?(short)(arr[1]);???//取字節2???
  • ????????????????????charCode?=?arr1?*?256?+?arr2?-?65536;//計算漢字的編碼???
  • ??
  • ?????????????????????if?(charCode?>?-10254?||?charCode?<?-20319)??//如果不在漢字編碼范圍內則不改變???
  • ????????????????????{??
  • ????????????????????????result.Append(arrChar[j]);??
  • ????????????????????}??
  • ????????????????????else??
  • ????????????????????{??
  • ????????????????????????//根據漢字編碼范圍查找對應的拼音并保存到結果中???
  • ????????????????????????//由于charCode的鍵不一定存在,所以要找比他更小的鍵上一個鍵??
  • ????????????????????????if?(!CodeCollections.ContainsKey(charCode))??
  • ????????????????????????{??
  • ????????????????????????????for?(int?i?=?charCode;?i?<=?0;?--i)??
  • ????????????????????????????{??
  • ????????????????????????????????if?(CodeCollections.ContainsKey(i))??
  • ????????????????????????????????{??
  • ????????????????????????????????????result.Append("?"?+?CodeCollections[i]?+?"?");??
  • ????????????????????????????????????break;??
  • ????????????????????????????????}??
  • ????????????????????????????}??
  • ????????????????????????}??
  • ????????????????????????else??
  • ????????????????????????{??
  • ????????????????????????????result.Append("?"?+?CodeCollections[charCode]?+?"?");??
  • ????????????????????????}??
  • ????????????????????}??
  • ????????????????}??
  • ????????????????return?result.ToString();??
  • ????????????}??
  • ????????}??


  • 更多WEB開發技術請加群:Asp.Net/Wp8高級開發群 號碼:261882616

    ?

    博主以及同事和你共同探討感興趣的話題

    轉載于:https://www.cnblogs.com/lilin123/archive/2012/11/01/2749169.html

    總結

    以上是生活随笔為你收集整理的C#汉字转换拼音技术详解(高性能)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。