这是我的毕业设计,我的导师要求我用JAVA做一个类似记事本一样的工具,可以在里面输入拼音,然后通过unicode转换成中文。
看各位GGJJ能不能都来帮我想想办法,小弟我在此先谢过各位了。。
分不够可以再开帖放分。

解决方案 »

  1.   

    拼音转unicode?再转中文?
    好像没什么联系么
      

  2.   

    这里有一个网上的程序,给你参考一下
    import sun.io.CharToByteConverter;
    /**
     * Powered by zms
     * 可以随便引用,修改
     * 但请保留此Powered by zms标志 
     */
    public class Chinese1 {
            private static String[] data1;
            private static int[] data2;
            private static int length=397;
            private static CharToByteConverter converter;
            static {
                    data1=new String[length];
                    data2=new int[length];
                    data1[0]="a";
                    data2[0]=20319;
                    data1[1]="ai";
                    data2[1]=20317;
                    data1[2]="an";
                    data2[2]=20304;
                    data1[3]="ang";
                    data2[3]=20295;
                    data1[4]="ang";
                    data2[4]=20295;
                    data1[5]="ao";
                    data2[5]=20292;
                    data1[6]="ba";
                    data2[6]=20283;
                    data1[7]="bai";
                    data2[7]=20265;
                    data1[8]="ban";
                    data2[8]=20257;
                    data1[9]="bang";
                    data2[9]=20242;
                    data1[10]="bao";
                    data2[10]=20230;
                    data1[11]="bei";
                    data2[11]=20051;
                    data1[12]="ben";
                    data2[12]=20036;
                    data1[13]="beng";
                    data2[13]=20032;
                    data1[14]="bi";
                    data2[14]=20026;
                    data1[15]="bian";
                    data2[15]=20002;
                    data1[16]="biao";
                    data2[16]=19990;
                    data1[17]="bie";
                    data2[17]=19986;
                    data1[18]="bin";
                    data2[18]=19982;
                    data1[19]="bing";
                    data2[19]=19976;
                    data1[20]="bo";
                    data2[20]=19805;
                    data1[21]="bu";
                    data2[21]=19784;
                    data1[22]="ca";
                    data2[22]=19775;
                    data1[23]="cai";
                    data2[23]=19774;
                    data1[24]="can";
                    data2[24]=19763;
                    data1[25]="cang";
                    data2[25]=19756;
                    data1[26]="cao";
                    data2[26]=19751;
                    data1[27]="ce";
                    data2[27]=19746;
                    data1[28]="ceng";
                    data2[28]=19741;
                    data1[29]="cha";
                    data2[29]=19739;
                    data1[30]="chai";
                    data2[30]=19728;
                    data1[31]="chan";
                    data2[31]=19725;
                    data1[32]="chang";
                    data2[32]=19715;
                    data1[33]="chao";
                    data2[33]=19540;
                    data1[34]="che";
                    data2[34]=19531;
                    data1[35]="chen";
                    data2[35]=19525;
                    data1[36]="cheng";
                    data2[36]=19515;
                    data1[37]="chi";
                    data2[37]=19500;
                    data1[38]="chong";
                    data2[38]=19484;
                    data1[39]="chou";
                    data2[39]=19479;
                    data1[40]="chu";
                    data2[40]=19467;
                    data1[41]="chuai";
                    data2[41]=19289;
                    data1[42]="chuan";
                    data2[42]=19288;
                    data1[43]="chuang";
                    data2[43]=19281;
                    data1[44]="chui";
                    data2[44]=19275;
                    data1[45]="chun";
                    data2[45]=19270;
                    data1[46]="chuo";
                    data2[46]=19263;
                    data1[47]="ci";
                    data2[47]=19261;
                    data1[48]="cong";
                    data2[48]=19249;
                    data1[49]="cou";
                    data2[49]=19243;
                    data1[50]="cu";
                    data2[50]=19242;
                    data1[51]="cuan";
                    data2[51]=19238;
                    data1[52]="cui";
                    data2[52]=19235;
                    data1[53]="cun";
                    data2[53]=19227;
                    data1[54]="cuo";
                    data2[54]=19224;
                    data1[55]="da";
                    data2[55]=19218;
                    data1[56]="dai";
                    data2[56]=19212;
                    data1[57]="dan";
                    data2[57]=19038;
                    data1[58]="dang";
                    data2[58]=19023;
                    data1[59]="dao";
                    data2[59]=19018;
                    data1[60]="de";
                    data2[60]=19006;
      

  3.   

    data1[61]="deng";
                    data2[61]=19003;
                    data1[62]="di";
                    data2[62]=18996;
                    data1[63]="dian";
                    data2[63]=18977;
                    data1[64]="diao";
                    data2[64]=18961;
                    data1[65]="die";
                    data2[65]=18952;
                    data1[66]="ding";
                    data2[66]=18783;
                    data1[67]="diu";
                    data2[67]=18774;
                    data1[68]="dong";
                    data2[68]=18773;
                    data1[69]="dou";
                    data2[69]=18763;
                    data1[70]="du";
                    data2[70]=18756;
                    data1[71]="duan";
                    data2[71]=18741;
                    data1[72]="dui";
                    data2[72]=18735;
                    data1[73]="dun";
                    data2[73]=18731;
                    data1[74]="duo";
                    data2[74]=18722;
                    data1[75]="e";
                    data2[75]=18710;
                    data1[76]="en";
                    data2[76]=18697;
                    data1[77]="er";
                    data2[77]=18696;
                    data1[78]="fa";
                    data2[78]=18526;
                    data1[79]="fan";
                    data2[79]=18518;
                    data1[80]="fang";
                    data2[80]=18501;
                    data1[81]="fei";
                    data2[81]=18490;
                    data1[82]="fen";
                    data2[82]=18478;
                    data1[83]="feng";
                    data2[83]=18463;
                    data1[84]="fo";
                    data2[84]=18448;
                    data1[85]="fou";
                    data2[85]=18447;
                    data1[86]="fu";
                    data2[86]=18446;
                    data1[87]="ga";
                    data2[87]=18239;
                    data1[88]="gai";
                    data2[88]=18237;
                    data1[89]="gan";
                    data2[89]=18231;
                    data1[90]="gang";
                    data2[90]=18220;
                    data1[91]="gao";
                    data2[91]=18211;
                    data1[92]="ge";
                    data2[92]=18201;
                    data1[93]="gei";
                    data2[93]=18184;
                    data1[94]="gen";
                    data2[94]=18183;
                    data1[95]="geng";
                    data2[95]=18181;
                    data1[96]="gong";
                    data2[96]=18012;
                    data1[97]="gou";
                    data2[97]=17997;
                    data1[98]="gu";
                    data2[98]=17988;
                    data1[99]="gua";
                    data2[99]=17970;
                    data1[100]="guai";
                    data2[100]=17964;
                    data1[101]="guan";
                    data2[101]=17961;
                    data1[102]="guang";
                    data2[102]=17950;
                    data1[103]="gui";
                    data2[103]=17947;
                    data1[104]="gun";
                    data2[104]=17931;
                    data1[105]="guo";
                    data2[105]=17928;
                    data1[106]="ha";
                    data2[106]=17922;
                    data1[107]="hai";
                    data2[107]=17759;
                    data1[108]="han";
                    data2[108]=17752;
                    data1[109]="hang";
                    data2[109]=17733;
                    data1[110]="hao";
                    data2[110]=17730;
                    data1[111]="he";
                    data2[111]=17721;
                    data1[112]="hei";
                    data2[112]=17703;
                    data1[113]="hen";
                    data2[113]=17701;
                    data1[114]="heng";
                    data2[114]=17697;
                    data1[115]="hong";
                    data2[115]=17692;
                    data1[116]="hou";
                    data2[116]=17683;
                    data1[117]="hu";
                    data2[117]=17676;
                    data1[118]="hua";
                    data2[118]=17496;
                    data1[119]="huai";
                    data2[119]=17487;
                    data1[120]="huan";
                    data2[120]=17482;
                    data1[121]="huang";
                    data2[121]=17468;
                    data1[122]="hui";
                    data2[122]=17454;
                    data1[123]="hun";
                    data2[123]=17433;
                    data1[124]="huo";
                    data2[124]=17427;
                    data1[125]="ji";
                    data2[125]=17417;
                    data1[126]="jia";
                    data2[126]=17202;
                    data1[127]="jian";
                    data2[127]=17185;
                    data1[128]="jiang";
                    data2[128]=16983;
                    data1[129]="jiao";
                    data2[129]=16970;
                    data1[130]="jie";
                    data2[130]=16942;
                    data1[131]="jin";
                    data2[131]=16915;
                    data1[132]="jing";
                    data2[132]=16733;
                    data1[133]="jiong";
                    data2[133]=16708;
                    data1[134]="jiu";
                    data2[134]=16706;
                    data1[135]="ju";
                    data2[135]=16689;
                    data1[136]="juan";
                    data2[136]=16664;
                    data1[137]="jue";
                    data2[137]=16657;
                    data1[138]="jun";
                    data2[138]=16647;
                    data1[139]="ka";
                    data2[139]=16474;
                    data1[140]="kai";
                    data2[140]=16470;
                    data1[141]="kan";
                    data2[141]=16465;
                    data1[142]="kang";
                    data2[142]=16459;
                    data1[143]="kao";
                    data2[143]=16452;
                    data1[144]="ke";
                    data2[144]=16448;
                    data1[145]="ken";
                    data2[145]=16433;
                    data1[146]="keng";
                    data2[146]=16429;
                    data1[147]="kong";
                    data2[147]=16427;
                    data1[148]="kou";
                    data2[148]=16423;
                    data1[149]="ku";
                    data2[149]=16419;
                    data1[150]="kua";
                    data2[150]=16412;
                    data1[151]="kuai";
                    data2[151]=16407;
                    data1[152]="kuan";
                    data2[152]=16403;
                    data1[153]="kuang";
                    data2[153]=16401;
                    data1[154]="kui";
                    data2[154]=16393;
                    data1[155]="kun";
                    data2[155]=16220;
      

  4.   

    data1[156]="kuo";
                    data2[156]=16216;
                    data1[157]="la";
                    data2[157]=16212;
                    data1[158]="lai";
                    data2[158]=16205;
                    data1[159]="lan";
                    data2[159]=16202;
                    data1[160]="lang";
                    data2[160]=16187;
                    data1[161]="lao";
                    data2[161]=16180;
                    data1[162]="le";
                    data2[162]=16171;
                    data1[163]="lei";
                    data2[163]=16169;
                    data1[164]="leng";
                    data2[164]=16158;
                    data1[165]="li";
                    data2[165]=16155;
                    data1[166]="lia";
                    data2[166]=15959;
                    data1[167]="lian";
                    data2[167]=15958;
                    data1[168]="liang";
                    data2[168]=15944;
                    data1[169]="liao";
                    data2[169]=15933;
                    data1[170]="lie";
                    data2[170]=15920;
                    data1[171]="lin";
                    data2[171]=15915;
                    data1[172]="ling";
                    data2[172]=15903;
                    data1[173]="liu";
                    data2[173]=15889;
                    data1[174]="long";
                    data2[174]=15878;
                    data1[175]="lou";
                    data2[175]=15707;
                    data1[176]="lu";
                    data2[176]=15701;
                    data1[177]="lv";
                    data2[177]=15681;
                    data1[178]="luan";
                    data2[178]=15667;
                    data1[179]="lue";
                    data2[179]=15661;
                    data1[180]="lun";
                    data2[180]=15659;
                    data1[181]="luo";
                    data2[181]=15652;
                    data1[182]="ma";
                    data2[182]=15640;
                    data1[183]="mai";
                    data2[183]=15631;
                    data1[184]="man";
                    data2[184]=15625;
                    data1[185]="mang";
                    data2[185]=15454;
                    data1[186]="mao";
                    data2[186]=15448;
                    data1[187]="me";
                    data2[187]=15436;
                    data1[188]="mei";
                    data2[188]=15435;
                    data1[189]="men";
                    data2[189]=15419;
                    data1[190]="meng";
                    data2[190]=15416;
                    data1[191]="mi";
                    data2[191]=15408;
                    data1[192]="mian";
                    data2[192]=15394;
                    data1[193]="miao";
                    data2[193]=15385;
                    data1[194]="mie";
                    data2[194]=15377;
                    data1[195]="min";
                    data2[195]=15375;
                    data1[196]="ming";
                    data2[196]=15369;
                    data1[197]="miu";
                    data2[197]=15363;
                    data1[198]="mo";
                    data2[198]=15362;
                    data1[199]="mou";
                    data2[199]=15183;
                    data1[200]="mu";
                    data2[200]=15180;
                    data1[201]="na";
                    data2[201]=15165;
                    data1[202]="nai";
                    data2[202]=15158;
                    data1[203]="nan";
                    data2[203]=15153;
                    data1[204]="nang";
                    data2[204]=15150;
                    data1[205]="nao";
                    data2[205]=15149;
                    data1[206]="ne";
                    data2[206]=15144;
                    data1[207]="nei";
                    data2[207]=15143;
                    data1[208]="nen";
                    data2[208]=15141;
                    data1[209]="neng";
                    data2[209]=15140;
                    data1[210]="ni";
                    data2[210]=15139;
                    data1[211]="nian";
                    data2[211]=15128;
                    data1[212]="niang";
                    data2[212]=15121;
                    data1[213]="niao";
                    data2[213]=15119;
                    data1[214]="nie";
                    data2[214]=15117;
                    data1[215]="nin";
                    data2[215]=15110;
                    data1[216]="ning";
                    data2[216]=15109;
                    data1[217]="niu";
                    data2[217]=14941;
                    data1[218]="nong";
                    data2[218]=14937;
                    data1[219]="nu";
                    data2[219]=14933;
                    data1[220]="nv";
                    data2[220]=14930;
                    data1[221]="nuan";
                    data2[221]=14929;
                    data1[222]="nue";
                    data2[222]=14928;
                    data1[223]="nuo";
                    data2[223]=14926;
                    data1[224]="o";
                    data2[224]=14922;
                    data1[225]="ou";
                    data2[225]=14921;
                    data1[226]="pa";
                    data2[226]=14914;
                    data1[227]="pai";
                    data2[227]=14908;
                    data1[228]="pan";
                    data2[228]=14902;
                    data1[229]="pang";
                    data2[229]=14894;
                    data1[230]="pao";
                    data2[230]=14889;
                    data1[231]="pei";
                    data2[231]=14882;
                    data1[232]="pen";
                    data2[232]=14873;
                    data1[233]="peng";
                    data2[233]=14871;
                    data1[234]="pi";
                    data2[234]=14857;
                    data1[235]="pian";
                    data2[235]=14678;
                    data1[236]="piao";
                    data2[236]=14674;
                    data1[237]="pie";
                    data2[237]=14670;
                    data1[238]="pin";
                    data2[238]=14668;
                    data1[239]="ping";
                    data2[239]=14663;
                    data1[240]="po";
                    data2[240]=14654;
                    data1[241]="pu";
                    data2[241]=14645;
                    data1[242]="qi";
                    data2[242]=14630;
                    data1[243]="qia";
                    data2[243]=14594;
                    data1[244]="qian";
                    data2[244]=14429;
                    data1[245]="qiang";
                    data2[245]=14407;
                    data1[246]="qiao";
                    data2[246]=14399;
                    data1[247]="qie";
                    data2[247]=14384;
                    data1[248]="qin";
                    data2[248]=14379;
                    data1[249]="qing";
                    data2[249]=14368;
                    data1[250]="qiong";
                    data2[250]=14355;
                    data1[251]="qiu";
                    data2[251]=14353;
                    data1[252]="qu";
                    data2[252]=14345;
                    data1[253]="quan";
                    data2[253]=14170;
                    data1[254]="que";
                    data2[254]=14159;
                    data1[255]="qun";
                    data2[255]=14151;
                    data1[256]="ran";
                    data2[256]=14149;
      

  5.   

    data1[257]="rang";
                    data2[257]=14145;
                    data1[258]="rao";
                    data2[258]=14140;
                    data1[259]="re";
                    data2[259]=14137;
                    data1[260]="ren";
                    data2[260]=14135;
                    data1[261]="reng";
                    data2[261]=14125;
                    data1[262]="ri";
                    data2[262]=14123;
                    data1[263]="rong";
                    data2[263]=14122;
                    data1[264]="rou";
                    data2[264]=14112;
                    data1[265]="ru";
                    data2[265]=14109;
                    data1[266]="ruan";
                    data2[266]=14099;
                    data1[267]="rui";
                    data2[267]=14097;
                    data1[268]="run";
                    data2[268]=14094;
                    data1[269]="ruo";
                    data2[269]=14092;
                    data1[270]="sa";
                    data2[270]=14090;
                    data1[271]="sai";
                    data2[271]=14087;
                    data1[272]="san";
                    data2[272]=14083;
                    data1[273]="sang";
                    data2[273]=13917;
                    data1[274]="sao";
                    data2[274]=13914;
                    data1[275]="se";
                    data2[275]=13910;
                    data1[276]="sen";
                    data2[276]=13907;
                    data1[277]="seng";
                    data2[277]=13906;
                    data1[278]="sha";
                    data2[278]=13905;
                    data1[279]="shai";
                    data2[279]=13896;
                    data1[280]="shan";
                    data2[280]=13894;
                    data1[281]="shang";
                    data2[281]=13878;
                    data1[282]="shao";
                    data2[282]=13870;
                    data1[283]="she";
                    data2[283]=13859;
                    data1[284]="shen";
                    data2[284]=13847;
                    data1[285]="sheng";
                    data2[285]=13831;
                    data1[286]="shi";
                    data2[286]=13658;
                    data1[287]="shou";
                    data2[287]=13611;
                    data1[288]="shu";
                    data2[288]=13601;
                    data1[289]="shua";
                    data2[289]=13406;
                    data1[290]="shuai";
                    data2[290]=13404;
                    data1[291]="shuan";
                    data2[291]=13400;
                    data1[292]="shuang";
                    data2[292]=13398;
                    data1[293]="shui";
                    data2[293]=13395;
                    data1[294]="shun";
                    data2[294]=13391;
                    data1[295]="shuo";
                    data2[295]=13387;
                    data1[296]="si";
                    data2[296]=13383;
                    data1[297]="song";
                    data2[297]=13367;
                    data1[298]="sou";
                    data2[298]=13359;
                    data1[299]="su";
                    data2[299]=13356;
                    data1[300]="suan";
                    data2[300]=13343;
                    data1[301]="sui";
                    data2[301]=13340;
                    data1[302]="sun";
                    data2[302]=13329;
                    data1[303]="suo";
                    data2[303]=13326;
                    data1[304]="ta";
                    data2[304]=13318;
                    data1[305]="tai";
                    data2[305]=13147;
                    data1[306]="tan";
                    data2[306]=13138;
                    data1[307]="tang";
                    data2[307]=13120;
                    data1[308]="tao";
                    data2[308]=13107;
                    data1[309]="te";
                    data2[309]=13096;
                    data1[310]="teng";
                    data2[310]=13095;
                    data1[311]="ti";
                    data2[311]=13091;
                    data1[312]="tian";
                    data2[312]=13076;
                    data1[313]="tiao";
                    data2[313]=13068;
                    data1[314]="tie";
                    data2[314]=13063;
                    data1[315]="ting";
                    data2[315]=13060;
                    data1[316]="tong";
                    data2[316]=12888;
                    data1[317]="tou";
                    data2[317]=12875;
                    data1[318]="tu";
                    data2[318]=12871;
                    data1[319]="tuan";
                    data2[319]=12860;
                    data1[320]="tui";
                    data2[320]=12858;
                    data1[321]="tun";
                    data2[321]=12852;
                    data1[322]="tuo";
                    data2[322]=12849;
                    data1[323]="wa";
                    data2[323]=12838;
                    data1[324]="wai";
                    data2[324]=12831;
                    data1[325]="wan";
                    data2[325]=12829;
                    data1[326]="wang";
                    data2[326]=12812;
                    data1[327]="wei";
                    data2[327]=12802;
                    data1[328]="wen";
                    data2[328]=12607;
                    data1[329]="weng";
                    data2[329]=12597;
                    data1[330]="wo";
                    data2[330]=12594;
                    data1[331]="wu";
                    data2[331]=12585;
                    data1[332]="xi";
                    data2[332]=12556;
                    data1[333]="xia";
                    data2[333]=12359;
                    data1[334]="xian";
                    data2[334]=12346;
                    data1[335]="xiang";
                    data2[335]=12320;
                    data1[336]="xiao";
                    data2[336]=12300;
                    data1[337]="xie";
                    data2[337]=12120;
                    data1[338]="xin";
                    data2[338]=12099;
                    data1[339]="xing";
                    data2[339]=12089;
                    data1[340]="xiong";
                    data2[340]=12074;
                    data1[341]="xiu";
                    data2[341]=12067;
                    data1[342]="xu";
                    data2[342]=12058;
                    data1[343]="xuan";
                    data2[343]=12039;
                    data1[344]="xue";
                    data2[344]=11867;
                    data1[345]="xun";
                    data2[345]=11861;
                    data1[346]="ya";
                    data2[346]=11847;
                    data1[347]="yan";
                    data2[347]=11831;
                    data1[348]="yang";
                    data2[348]=11798;
                    data1[349]="yao";
                    data2[349]=11781;
                    data1[350]="ye";
                    data2[350]=11604;
                    data1[351]="yi";
                    data2[351]=11589;
                    data1[352]="yin";
                    data2[352]=11536;
                    data1[353]="ying";
                    data2[353]=11358;
                    data1[354]="yo";
                    data2[354]=11340;
                    data1[355]="yong";
                    data2[355]=11339;
                    data1[356]="you";
                    data2[356]=11324;
                    data1[357]="yu";
                    data2[357]=11303;
                    data1[358]="yuan";
                    data2[358]=11097;
                    data1[359]="yue";
                    data2[359]=11077;
                    data1[360]="yun";
                    data2[360]=11067;
                    data1[361]="za";
                    data2[361]=11055;
                    data1[362]="zai";
                    data2[362]=11052;
                    data1[363]="zan";
                    data2[363]=11045;
                    data1[364]="zang";
                    data2[364]=11041;
                    data1[365]="zao";
                    data2[365]=11038;
                    data1[366]="ze";
                    data2[366]=11024;
      

  6.   

    data1[367]="zei";
                    data2[367]=11020;
                    data1[368]="zen";
                    data2[368]=11019;
                    data1[369]="zeng";
                    data2[369]=11018;
                    data1[370]="zha";
                    data2[370]=11014;
                    data1[371]="zhai";
                    data2[371]=10838;
                    data1[372]="zhan";
                    data2[372]=10832;
                    data1[373]="zhang";
                    data2[373]=10815;
                    data1[374]="zhao";
                    data2[374]=10800;
                    data1[375]="zhe";
                    data2[375]=10790;
                    data1[376]="zhen";
                    data2[376]=10780;
                    data1[377]="zheng";
                    data2[377]=10764;
                    data1[378]="zhi";
                    data2[378]=10587;
                    data1[379]="zhong";
                    data2[379]=10544;
                    data1[380]="zhou";
                    data2[380]=10533;
                    data1[381]="zhu";
                    data2[381]=10519;
                    data1[382]="zhua";
                    data2[382]=10331;
                    data1[383]="zhuai";
                    data2[383]=10329;
                    data1[384]="zhuan";
                    data2[384]=10328;
                    data1[385]="zhuang";
                    data2[385]=10322;
                    data1[386]="zhui";
                    data2[386]=10315;
                    data1[387]="zhun";
                    data2[387]=10309;
                    data1[388]="zhuo";
                    data2[388]=10307;
                    data1[389]="zi";
                    data2[389]=10296;
                    data1[390]="zong";
                    data2[390]=10281;
                    data1[391]="zou";
                    data2[391]=10274;
                    data1[392]="zu";
                    data2[392]=10270;
                    data1[393]="zuan";
                    data2[393]=10262;
                    data1[394]="zui";
                    data2[394]=10260;
                    data1[395]="zun";
                    data2[395]=10256;
                    data1[396]="zuo";
                    data2[396]=10254;
                    for(int i=0;i<length;i++) {
                            data2[i]=-data2[i];
                    }
                    try {
                            converter=CharToByteConverter.getConverter("GBK");
                    } catch (Exception e) {
                            //how can this happen?
                            System.out.println("I'm dying!");
                            System.exit(1122);
                    }
                    
            }
            
            public static String getPin(char c) throws Exception {
                    byte[] data=converter.convertAll(new char[]{c});
                    int code=0;
                    for(int i=0;i<data.length;i++) {
                            code*=256;
                            if(data[i]<0) {
                                    code+=data[i]+256;                                              
                            } else {                        
                                    code+=data[i];                                  
                            }
                    }
                    code-=65536;
                    if(code>=-20319 && code<=-10247) {
                            for(int i=length-1;i>=0;i--) {
                                    if(code>=data2[i]) {
                                            return data1[i];
                                    }
                            }                               
                    }
                    return null;
            }
            
            public static void main(String[] args) throws Exception {
                    String s="张三李四王五";
                    char[] data=s.toCharArray();
                    for(int i=0;i<data.length;i++) {
                            System.out.println(getPin(data[i]));                                    
                    }
                    System.out.println("--");
                    s="将汉字转为拼音";
                    data=s.toCharArray();
                    for(int i=0;i<data.length;i++) {
                            System.out.println(getPin(data[i]));                                    
                    }
            }
    }
      

  7.   

    噢,这是将汉字转为拼音的GB转换pinyin代码 
      

  8.   

    这里有一片来自网络的文章,思路好像跟我的满像的,希望哪位大大,可以给以帮助谢谢!自己开发的java中文处理编辑器近日,闲来无事,突然想做一个java版的中文输入法。前天晚上躺在床上整理了一下思路,觉得如果想做成想紫光一样,难度和工作量都比较大,但比较简单的汉字处理编辑器还是可以写一写的,就算是一个小“demo”吧。
        在思考如何实现这个“demo”之前,有一个比较棘手的问题以前没有处理过。我最近一年一直都在写web的java程序,swing方面疏远了不少(虽然以前也不是很强,呵呵)。这个问题就是如何实现像紫光输入法一样,在文本编辑器中,弹出一个中文解析窗口。在学校的bbs上问了一下,知道可以用JWindow实现,但知道的时候,我已经用自己一个JFrame的子类实现了功能,也就懒得该了。    下面我们来浏览一下程序概要:
    1、首先,我要在编辑器中的JTextArea限制输入,对a -- z 的字符进行解析,而不是让其
    直接输入JTextArea中。所以,我创建了一个TextDocument,该类继承了javax.swing.text.PlainDocument,
    并重载了insertString方法。部分代码如下:/**插入字符串的触发事件,对于任何一个小写的字母,不让输入,以便输入法PopupFrame进行转换*/ 
        public void insertString( int offset, String s, AttributeSet attributeSet ) 
            throws BadLocationException 
        { 
          if(s.length() == 0){ 
            return; 
          } 
          String endChar = s.substring(s.length()-1); 
          //如果输入的是 a -- z 的字符,那么需要输入法转换而不是显示,否则可以直接进行显示 
          if( endChar.compareTo("a")>=0 && endChar.compareTo("z")<=0){ 
            super.insertString( offset,s.substring(0,s.length()-1), attributeSet ); 
          }else{ 
            super.insertString( offset,s, attributeSet ); 
          } 
        } 2、其次,我创建了一个PopupDocument,该类继承了javax.swing.text.PlainDocument,
    并重载了insertString方法。部分代码如下:/**插入字符串的触发事件,对于任何一个小写的字母,不让输入,以便输入法PopupFrame进行转换*/ 
        public void insertString( int offset, String s, AttributeSet attributeSet ) 
            throws BadLocationException 
        { 
          if(s.length() == 0){ 
            return; 
          } 
          String endChar = s.substring(s.length()-1); 
          //如果输入的是 a -- z 的字符则显示,否则不能输入 
          if( endChar.compareTo("a")>=0 && endChar.compareTo("z")<=0){ 
            super.insertString( offset,s, attributeSet ); 
          }else{ 
            super.insertString( offset,"", attributeSet ); 
          } 
        } 3、编辑器类 -- TextFrame,里面定义了一个JTextArea对象,为了限制JTextArea 的输
    入,初始化时需要有下面的代码:jTextArea.setDocument(new TextDocument()); 然后,就是增加一个键盘的监听事件,代码如下:void jTextArea_keyPressed(KeyEvent e) { 
        // pop是一个全局变量,定义是PopupFrame pop; 
        if( pop != null ){ 
          pop.dispose(); 
          pop = null; 
        } 
        char pressChar = e.getKeyChar(); 
        if('a' <=pressChar && 'z'>= pressChar){ 
          pop = new PopupFrame(this,pressChar); 
        } 
      } 以上的代码执行了这样的功能,即监听JTextArea的输入,如果是a  --  z  的字母,那么
    就弹出解析窗口。
    4、解析器窗口类 -- PopupFrame,里面定义了两个JTextField对象,一个用来接受输入字
    母(可以编辑),另一用来及时显示输入字母的解析结果(如果在字库里有的话)。下面我
    来介绍一下类里具体的方法:
    loadAllInput方法。在初始化时调用,该方法将参数制定的文件读入内存,并将字
    符串和对应的解析结果保存到全局变量inputHash。  private void loadAllInput(String inFile) throws Exception{ 
        BufferedReader in = new BufferedReader( new FileReader( inFile ) ); 
        String InLine =""; 
        StringTokenizer token =null; 
        while ( (InLine = in.readLine()) != null) { 
          token = new StringTokenizer(InLine); 
          String noParseWord = ""; 
          Vector parseWord = new Vector(); 
          if(token.hasMoreTokens()){ 
            noParseWord = token.nextToken(); 
          } 
          while(token.hasMoreTokens()){ 
            parseWord.add(token.nextToken()); 
          } 
          this.inputHash.put(noParseWord,parseWord); 
        } 
        in.close(); 
      } parseInputChars方法。该方法根据输入的字符串,解析输出对应的汉字。代码如下:private String parseInputChars(String input){ 
        Vector parseWords = (Vector)inputHash.get(input); 
        String rString = ""; 
        //处理多页 
        if (pageNo >1){ 
          for (int i = (pageNo-1)*9; parseWords !=null && i < parseWords.size(); i++) { 
              rString += ""+ (i+1-(pageNo-1)*9) + parseWords.get(i)+" "; 
          } 
        } 
        //处理单页 
        else{ 
          for (int i = 0; parseWords !=null && i < parseWords.size() && i< 9; i++) { 
              rString += ""+ (i+1) + parseWords.get(i)+" "; 
          } 
        } 
        return rString; 
      } 
        getSelectWords方法。该方法在输入1 -- 9时,返回选择的解析结果。 
      private String getSelectWords(char sChar,String sString){ 
        if(sString ==null){ 
          return ""; 
        } 
        String rString = ""; 
        Vector vector = new Vector(); 
        StringTokenizer token = new StringTokenizer(sString); 
        while(token.hasMoreTokens()){ 
              vector.add(token.nextToken().substring(1)); 
        } 
        rString = (String)vector.get(Integer.parseInt(""+sChar)-1); 
        return rString; 
      } inputTextField_keyPressed方法。该方法是键盘监听事件的实现函数。如果键盘输入是a -- z的字母,那么调用parseInputChars,解析结果;如果是1 -- 9的字母,那么除了调用parseInputChars之外,接着需要先调用getSelectWords获得选择的解析结果,再把解析结果回写到textFrame的JTextArea中。  void inputTextField_keyPressed(KeyEvent e) { 
        String parseWords = ""; 
        this.showTextField.setText(""); 
        char pressChar = e.getKeyChar(); 
        //如果输入的是1 -- 9,那么就应该转入编辑页面,并且将选择相应编号的汉字输入到编辑页面,否则继续解析输入 
        if('1' ==pressChar || 
           '2'== pressChar || 
           '3'== pressChar || 
           '4'== pressChar || 
           '5'== pressChar || 
           '6'== pressChar || 
           '7'== pressChar || 
           '8'== pressChar || 
           '9'== pressChar ){ 
    //      System.out.println("pressChar"+pressChar); 
          parseWords = this.parseInputChars(inputTextField.getText()); 
    //      System.out.println("old:"+this.textFrame.getJTextArea().getText()); 
    //      System.out.println("add:"+parseWords); 
          String result = getSelectWords(pressChar,parseWords); 
          this.textFrame.getJTextArea().setText(this.textFrame.getJTextArea().getText()+result); 
          this.textFrame.repaint(); 
          this.textFrame.getJTextArea().requestFocusInWindow(); 
          this.dispose(); 
        } 
        else if (KeyEvent.VK_ENTER == pressChar){ 
          this.pageNo = 1; 
          String result = this.inputTextField.getText(); 
          System.out.println("*************"+result); 
          System.out.println("*****************"+this.textFrame.getJTextArea().getText()+result); 
          this.textFrame.getJTextArea().setText(this.textFrame.getJTextArea().getText()+result); 
          this.textFrame.repaint(); 
          this.textFrame.getJTextArea().requestFocusInWindow(); 
          this.dispose();     } 
        else if(KeyEvent.VK_BACK_SPACE == pressChar){ 
          this.pageNo = 1; 
    //      System.out.println("back space:"+ 
    //        inputTextField.getText().substring(0, 
    //        inputTextField.getText().length()-1)); 
          parseWords = this.parseInputChars(inputTextField.getText(). 
            substring(0,inputTextField.getText().length()-1)); 
        } 
        else if(',' == pressChar){ 
    //      System.out.println("*********************in ,,,,,,,,,,,"); 
          this.pageNo = this.pageNo==1?1:pageNo-1; 
    //      System.out.println(inputTextField.getText()); 
          parseWords = this.parseInputChars(inputTextField.getText()); 
        } 
        else if('.' == pressChar){ 
    //      System.out.println("**********************in ............"); 
          this.pageNo = pageNo + 1; 
    //      System.out.println("pageNo:"+pageNo); 
          parseWords = this.parseInputChars(inputTextField.getText()); 
        } 
        else{ 
          this.pageNo = 1; 
          parseWords = this.parseInputChars(inputTextField.getText() 
            +e.getKeyChar()); 
        } 
        if(parseWords !=null){ 
          this.showTextField.setText(parseWords); 
        } 
        this.repaint(); 
      } 
      

  9.   

    这里有个网址,是用java applet做的,功能正是我想要的,可惜我找不到类是的代码,各位大大可以看看,做的很不错,希望大家可以讨论讨论!http://ai.bpa.arizona.edu/~tong/mlir/mlinput/
      

  10.   

    对了,这个课题除了用unicode的方法外还有什么别的办法可以做吗?
      

  11.   

    我想提一个问题,中文中,用拼音的话,很多的字都是同样的,楼主打算怎么来区分呢?假如一定要做的话,我觉得,只有分析一下UNICODE的编码分配表,和拼音有没有关系。有关系的话,可能还简单一些,没有的话,那就麻烦一些。(刚才看了一下,和偏旁有关系,和拼音没有关系)看来你要这么做的话,就只有自己列举,看到过有这样的工具,用这个编码表来转换。还有一个办法,就是用JNI的方法,截取微软拼音输入法,用它来转换,得到的可能是GB2312的编码,换成UNICODE的。
      

  12.   

    这个我用C++做个一个正好相反的程序,
    用来查询五笔的字根的,如果要求不是太高的话,
    你先要有一个编码文件,要么单独做一个文件,要么包含在数组里,这个是查找的依据
    然后就是对输入的字符在编码文件中进行查询,找到了相应的数据后显示就可以了。如果你要C++的版本的话,我可以发给你源代码 大小为50K
      

  13.   

    嗯,还是把邮箱发给我吧,[email protected]
      

  14.   

    wodeyouxian(人生如梦) 邮件我已经收到 正在学习中...
    谢谢...
      

  15.   

    能发一份给我学习吗?
    [email protected]
      

  16.   

    believefym(暮色,miss,迷失,miss) 我太崇拜你了!
      

  17.   

    %#%@#$$$$$%#$%^&*()(& &*(%^~
    如果四四方方不在重复,那是撒呢,那就是一个SB公司,一个表面人性的,其实也是个流氓公司,
    老总泡助理,助理搞老总,公司没撒业务发展,一天就是围在四川打转转,业务没几个,还在被其他公司侵蚀,公司从上到下都在窝里斗,开发的程序没撒文挡,开发的流程混乱不堪,你看他们的开发筐筐架架挺多,其实都是为了应付领导检查,下面的员工一个而个把手上的资料拽着不拿出来,其实这也不能怪他们,拿出来了还咋混,公司要的是结果,不是过程,谁敢保证自己拿出来了,带了新人,交会了新人,自己能不走吗,完全没有保障,现在招了一大堆新人,全是刚毕业的,有些还没毕业,就来了,公司不是很喜欢用有经验的或是技术太强的,为撒,就是新人听话,技术好点又和项目经理部门经理有冲突,在那里就学要学会脸皮厚,学会说慌话,你还要看清楚你是那个派别的,弄不好那天你走人了都不知道撒回事.在里头技术差点没撒,回拍马匹就可以.回拍马坯的,钱是大把大把的拿.在那里都是带着面具生活,为的撒就是那点自己的利益,那些鸟人从总经理到部门经理,到项目经理到员工都在斗的死去活来.也不知道斗到撒时候才完,我看他们是捞完一笔也就完事了,倒霉的还是下面的员工.唉
    %^&*$)@(&(^^^$$