Converts any input Chinese characters to PinYin
(1) only one pronunciation is used for the multiphonograph.
(2) Use unknown instead of pinyin for uncommon words.
Package com. amgotech;
Public class chinesespelling
{
Private Static int [] pyvalue = new int [] {-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257, -20230,-20051,-20036,-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775, -19774,-19763,-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525, -19515,-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249, -19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,-19003, -18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,-18731,-18722, -18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,-18447,-18446,-18239, -18237,-18231,-18220,-18211,-18201,-18184,-18183,-18181,-18012,-17997,-17988,-17970,-17964, -17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,-17733,-17730,-17721,-17703,-17701, -17697,-17692,-17683,-17676,-17496,-17487,-17482,-17468,-17454,-17433,-17427,-17417,-17202, -17185,-16983,-16970,-16942,-16915,-16733,-16708,-16706,-16689,-16664,-16657,-16647,-16474, -16470,-16465,-16459,-16452,-16448,-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403, -16401,-16393,-16220,-16216,-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155, -15959,-15958,-15944,-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667, -15661,-15659,-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408, -15394,-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150, -15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,-14941, -14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,-14894,-14889, -14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,-14645,-14630,-14594, -14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,-14170,-14159,-14151,-14149, -14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,-14109,-14099,-14097,-14094,-14092, -14090,-14087,-14083,-13917,-13914,-13910,-13907,-13906,-13905,-13896,-13894,-13878,-13870, -13859,-13847,-13831,-13658,-13611,-13601,-13406,-13404,-13400,-13398,-13395,-13391,-13387, -13383,-13367,-13359,-13356,-13343,-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107, -13096,-13095,-13091,-13076,-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852, -12849,-12838,-12831,-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346, -12320,-12300,-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831, -11798,-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067, -11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,-10815, -10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,-10322,-10315, -10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254 };
Private Static string [] pystr = new string [] {"A", "AI", "an", "Ang", "Ao", "ba", "bai ", "ban", "bang", "Bao", "Bei", "Ben", "Beng", "bi", "Bian", "Biao", "bie ", "bin", "bing", "Bo", "bu", "ca", "Cai", "can", "Cang", "Cao", "CE ", "Ceng", "cha", "chai", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Chi ", "Chong", "Chou", "chu", "Chuai", "Chuan", "Chuang", "Chui", "Chun", "Chuo", "Ci ", "Cong", "cou", "Cu", "Cuan", "Cui", "cun", "CuO", "da", "Dai", "Dan ", "dang", "Dao", "de", "Deng", "Di", "Dian", "Diao", "die", "ding", "Diu ", "Dong", "dou", "Du", "Duan", "DUI", "Dun", "duo", "E", "en", "er ", "Fa", "fan", "fang", "fei", "Fen", "Feng", "FO", "fou", "Fu", "Ga ", "Gai", "Gan", "Gang", "Gao", "Ge", "gei", "gen", "Geng", "Gong", "gou ", "Gu", "Gua", "Guai", "Guan", "Guang", "Gui", "gun", "Guo", "ha", "Hai ", "Han", "hang", "hao", "he", "Hei", "Hangzhou", "Heng", "Hong", "Hou", "Hu ", "Hua", "Huai", "Huan", "Huang", "Hui", "hun", "Huo", "Ji", "Jia", "jian ", "Jiang", "Jiao", "Jie", "Jin", "jing", "jiong", "Jiu", "Ju", "Juan", "Jue ", "Jun", "ka", "Kai", "kan", "Kang", "kao", "Ke", "Ken", "Keng", "Kong ", "Kou", "ku", "Kua", "Kuai", "Kuan", "Kuang", "Kui", "Kun", "Kuo", "La ", "Lai", "Lan", "Lang", "Lao", "Le", "lei", "leng", "Li", "Lia", "Lian ", "Liang", "liao", "lie", "Lin", "Ling", "Liu", "long", "Lou", "Lu", "LV ", "Luan", "Lue", "Lun", "Luo", "Ma", "Mai", "man", "mang", "Mao", "me ", "Mei", "men", "Meng", "mi", "Mian", "Miao", "Mie", "min", "Ming", "Miu ", "Mo", "MOU", "Mu", "Na", "Nai", "Nan", "Nang", "Nao", "ne", "Nei ", "Nen", "Neng", "Ni", "Nian", "Niang", "niao", "Nie", "Nin", "Ning", "niu ", "Nong", "Nu", "NV", "Nuan", "nue", "nuo", "O", "ou", "Pa", "Pai ", "pan", "Pang", "pao", "Pei", "pen", "peng", "Pi", "pian", "Piao", "pie ", "pin", "ping", "po", "Pu", "Qi", "QIA", "Qian", "Qiang", "Qiao", "Qie ", "Qin", "Qing", "Qiong", "Qiu", "Qu", "Quan", "que", "Qun", "ran", "rang ", "Rao", "re", "Ren", "reng", "Ri", "rong", "Rou", "Ru", "Ruan", "Rui ", "Run", "RuO", "sa", "sai", "San", "sang", "Sao", "se", "Sen", "Seng ", "Sha", "Shai", "Shan", "Shang", "shao", "she", "shen", "Sheng", "Shi", "Shou ", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shui", "Shun", "Shuo", "Si", "Song ", "Sou", "Su", "Suan", "Sui", "Sun", "Suo", "ta", "Tai", "Tan", "Tang ", "Tao", "te", "Teng", "ti", "Tian", "tiao", "Tie", "ting", "tong", "TOU ", "tu", "tuan", "Tui", "tun", "Tuo", "wa", "Wai", "Wan", "Wang", "wei ", "Wen", "Weng", "wo", "Wu", "Xi", "xia", "Xian", "Xiang", "Xiao", "xie ", "Xin", "Xing", "Xiong", "Xiu", "Xu", "Xuan", "Xue", "Xun", "ya", "Yan ", "yang", "Yao", "Ye", "Yi", "Yin", "ying", "yo", "Yong", "you", "Yu ", "Yuan", "Yue", "Yun", "za", "Zai", "Zan", "Zang", "Zao", "ze", "Zei ", "Zen", "Zeng", "Zha", "Zhai", "Zhan", "Zhang", "Zhao", "zhe", "Zhen", "Zheng ", "Zhi", "Zhong", "Zhou", "zhu", "zhua", "zhuai", "Zhuan", "Zhuang", "Zhui", "Zhun ", "Zhuo", "zi", "Zong", "zou", "Zu", "Zuan", "Zui", "Zun", "Zuo "};
Private stringbuilder buffer;
Private string resource;
Private Static chinesespelling = new chinesespelling ();
Public static chinesespelling getinstance ()
{
Return chinesespelling;
}
Public String getresource ()
{
Return resource;
}
Public void setresource (string resource)
{
This. Resource = resource;
}
Private int getchsascii (string CHS ){
Int ASC = 0;
Try {
Byte [] bytes = CHS. getbytes ("gb2312 ");
If (Bytes = NULL | bytes. length> 2 | bytes. Length <= 0) {// Error
// Log
Throw new runtimeexception ("illegal resource string ");
}
If (bytes. Length = 1)
{// English character
ASC = bytes [0];
}
If (bytes. Length = 2)
{// Chinese Characters
Int hightbyte = 256 + bytes [0];
Int lowbyte = 256 + bytes [1];
ASC = (256 * hightbyte + lowbyte)-256*256;
}
} Catch (exception E)
{
System. Out. println ("error: chinesespelling. Class-getchsascii (string CHS)" + E );
}
Return ASC;
}
Public String convert (string Str ){
String result = NULL;
Int ASCII = getchsascii (STR );
// System. Out. println (ASCII );
If (ASCII> 0 & ASCII <160)
{
Result = string. valueof (char) ASCII );
} Else
{
For (INT I = (pyvalue. Length-1); I> = 0; I --)
{
If (pyvalue [I] <= ASCII)
{
Result = pystr [I];
Break;
}
}
}
Return result;
}
Public String getselling (string CHS)
{
String key, value;
Buffer = new stringbuilder ();
For (INT I = 0; I <CHS. Length (); I ++)
{
Key = CHS. substring (I, I + 1 );
If (key. getbytes (). Length = 2)
{
Value = (string) convert (key );
If (value = NULL)
{
Value = "unknown ";
}
} Else
{
Value = key;
}
Buffer. append (value );
}
Return buffer. tostring ();
}
Public String getspelling ()
{
Return this. getselling (this. getresource ());
}
Public static void main (string [] ARGs ){
Chinesespelling finder = chinesespelling. getinstance ();
Finder. setresource ("Chinese characters: Jiangsu, Nanjing ");
System. Out. println (finder. getspelling ());
}
}
Running result:
Zhongwenzifu: Jiangsu, Nanjing
If the input result is a fullwidth symbol, the system cannot recognize it, and the result is displayed
Zhongwenzifuunknownjiangsu, Nanjing