中国語を入力し、「送信」ボタンをクリックすると、入力した中国語のピンインが自動的に入力されます。この実装方法はインターネット上にありましたが、よりわかりやすくするためにいくつかの修正を加えました。
ご質問がございましたら、 [email protected]までご連絡ください。
<%...@ ページ言語="java" import="java.util.*" contentType="text/html; charset=GBK" %>
<%...!
ハッシュテーブル ht=新しいハッシュテーブル(10);
文字列 g(整数 n){
int num=n.intValue();
if(num>0&&num<160){
戻り値 String.valueOf((char)num);
}
else if(num<-20319||num>-10247){
戻る "";
}
それ以外{
if(ht.size()==0){b();}
while(!ht.containsKey(Integer.toString(num)))num--;
return ht.get(Integer.toString(num)).toString();
}
}
文字列 c(文字列 str){
char[] hz=str.toCharArray();
int len=str.length();
int p,q;
文字列 ret="";
for(int i=0;i<len;i++){
p=(int)hz[i];
if(p>160){
q=(int)hz[++i];
p=p*256+q-65536;
}
ret+=g(新しい整数(p));
ret=ret+"<b>"+String.valueOf(p)+"</b><br>";
}
retを返します。
}
void b(){
ht.put("-20319","a");
ht.put("-20317","ai");
ht.put("-20304","an");
ht.put("-20295","ang");
ht.put("-20292","ao");
ht.put("-20283","ba");
ht.put("-20265","バイ");
ht.put("-20257","禁止");
ht.put("-20242","バン");
ht.put("-20230","バオ");
ht.put("-20051","bei");
ht.put("-20036","ベン");
ht.put("-20032","ベン");
ht.put("-20026","bi");
ht.put("-20002","ビアン");
ht.put("-19990","ビアオ");
ht.put("-19986","bie");
ht.put("-19982","bin");
ht.put("-19976","bing");
ht.put("-19805","bo");
ht.put("-19784","bu");
ht.put("-19775","ca");
ht.put("-19774","cai");
ht.put("-19763","できる");
ht.put("-19756","can");
ht.put("-19751","cao");
ht.put("-19746","ce");
ht.put("-19741","ceng");
ht.put("-19739","ちゃ");
ht.put("-19728","チャイ");
ht.put("-19725","ちゃん");
ht.put("-19715","変更");
ht.put("-19540","ちゃお");
ht.put("-19531","チェ");
ht.put("-19525","チェン");
ht.put("-19515","チェン");
ht.put("-19500","ち");
ht.put("-19484","chong");
ht.put("-19479","チョウ");
ht.put("-19467","ちゅ");
ht.put("-19289","チュウアイ");
ht.put("-19288","川");
ht.put("-19281","荘");
ht.put("-19275","チュウイ");
ht.put("-19270","チュン");
ht.put("-19263","中央");
ht.put("-19261","ci");
ht.put("-19249","cong");
ht.put("-19243","cou");
ht.put("-19242","cu");
ht.put("-19238","キュアン");
ht.put("-19235","cui");
ht.put("-19227","クン");
ht.put("-19224","クオ");
ht.put("-19218","だ");
ht.put("-19212","dai");
ht.put("-19038","ダン");
ht.put("-19023","ダン");
ht.put("-19018","dao");
ht.put("-19006","de");
ht.put("-19003","デン");
ht.put("-18996","ディ");
ht.put("-18977","ディアン");
ht.put("-18961","ディアオ");
ht.put("-18952","死ぬ");
ht.put("-18783","ディング");
ht.put("-18774","ディウ");
ht.put("-18773","ドン");
ht.put("-18763","ドゥ");
ht.put("-18756","du");
ht.put("-18741","ドゥアン");
ht.put("-18735","dui");
ht.put("-18731","ダン");
ht.put("-18722","デュオ");
ht.put("-18710","e");
ht.put("-18697","ja");
ht.put("-18696","えー");
ht.put("-18526","fa");
ht.put("-18518","ファン");
ht.put("-18501","牙");
ht.put("-18490","フェイ");
ht.put("-18478","フェン");
ht.put("-18463","フェン");
ht.put("-18448","fo");
ht.put("-18447","fou");
ht.put("-18446","ふ");
ht.put("-18239","が");
ht.put("-18237","がい");
ht.put("-18231","ガン");
ht.put("-18220","ギャング");
ht.put("-18211","ガオ");
ht.put("-18201","ge");
ht.put("-18184","芸");
ht.put("-18183","gen");
ht.put("-18181","geng");
ht.put("-18012","ゴング");
ht.put("-17997","ごう");
ht.put("-17988","グ");
ht.put("-17970","グア");
ht.put("-17964","グアイ");
ht.put("-17961","グアン");
ht.put("-17950","広");
ht.put("-17947","gui");
ht.put("-17931","銃");
ht.put("-17928","郭");
ht.put("-17922","は");
ht.put("-17759","ハイ");
ht.put("-17752","ハン");
ht.put("-17733","ハング");
ht.put("-17730","ハオ");
ht.put("-17721","彼");
ht.put("-17703","ヘイ");
ht.put("-17701","編");
ht.put("-17697","heng");
ht.put("-17692","ホン");
ht.put("-17683","hou");
ht.put("-17676","ふ");
ht.put("-17496","華");
ht.put("-17487","淮");
ht.put("-17482","フアン");
ht.put("-17468","黄");
ht.put("-17454","フイ");
ht.put("-17433","フン");
ht.put("-17427","huo");
ht.put("-17417","じ");
ht.put("-17202","ジア");
ht.put("-17185","ジャン");
ht.put("-16983","江");
ht.put("-16970","jiao");
ht.put("-16942","ジー");
ht.put("-16915","ジン");
ht.put("-16733","jing");
ht.put("-16708","ジオング");
ht.put("-16706","ジウ");
ht.put("-16689","ju");
ht.put("-16664","ジュアン");
ht.put("-16657","ジュエ");
ht.put("-16647","ジュン");
ht.put("-16474","か");
ht.put("-16470","カイ");
ht.put("-16465","カン");
ht.put("-16459","カン");
ht.put("-16452","かお");
ht.put("-16448","け");
ht.put("-16433","ケン");
ht.put("-16429","ケン");
ht.put("-16427","コング");
ht.put("-16423","こう");
ht.put("-16419","く");
ht.put("-16412","クア");
ht.put("-16407","クアイ");
ht.put("-16403","クアン");
ht.put("-16401","クアン");
ht.put("-16393","くい");
ht.put("-16220","くん");
ht.put("-16216","くお");
ht.put("-16212","ラ");
ht.put("-16205","ライ");
ht.put("-16202","lan");
ht.put("-16187","lang");
ht.put("-16180","ラオ");
ht.put("-16171","le");
ht.put("-16169","レイ");
ht.put("-16158","長さ");
ht.put("-16155","li");
ht.put("-15959","lia");
ht.put("-15958","リアン");
ht.put("-15944","梁");
ht.put("-15933","リャオ");
ht.put("-15920","嘘");
ht.put("-15915","lin");
ht.put("-15903","リング");
ht.put("-15889","リュー");
ht.put("-15878","長い");
ht.put("-15707","ルー");
ht.put("-15701","lu");
ht.put("-15681","lv");
ht.put("-15667","ルアン");
ht.put("-15661","lue");
ht.put("-15659","ルン");
ht.put("-15652","羅");
ht.put("-15640","ま");
ht.put("-15631","まい");
ht.put("-15625","男");
ht.put("-15454","マング");
ht.put("-15448","マオ");
ht.put("-15436","私");
ht.put("-15435","メイ");
ht.put("-15419","男性");
ht.put("-15416","孟");
ht.put("-15408","ミ");
ht.put("-15394","ミアン");
ht.put("-15385","ミャオ");
ht.put("-15377","三重");
ht.put("-15375","分");
ht.put("-15369","ミング");
ht.put("-15363","ミュウ");
ht.put("-15362","も");
ht.put("-15183","もう");
ht.put("-15180","mu");
ht.put("-15165","な");
ht.put("-15158","ナイ");
ht.put("-15153","ナン");
ht.put("-15150","ナン");
ht.put("-15149","nao");
ht.put("-15144","ね");
ht.put("-15143","ねい");
ht.put("-15141","年");
ht.put("-15140","ネン");
ht.put("-15139","に");
ht.put("-15128","ニアン");
ht.put("-15121","ニャン");
ht.put("-15119","ニャオ");
ht.put("-15117","ニー");
ht.put("-15110","nin");
ht.put("-15109","ニング");
ht.put("-14941","ニウ");
ht.put("-14937","ノン");
ht.put("-14933","nu");
ht.put("-14930","nv");
ht.put("-14929","ヌアン");
ht.put("-14928","鵺");
ht.put("-14926","nuo");
ht.put("-14922","o");
ht.put("-14921","ou");
ht.put("-14914","pa");
ht.put("-14908","パイ");
ht.put("-14902","パン");
ht.put("-14894","パン");
ht.put("-14889","パオ");
ht.put("-14882","ペイ");
ht.put("-14873","ペン");
ht.put("-14871","ペン");
ht.put("-14857","pi");
ht.put("-14678","ピアン");
ht.put("-14674","ピャオ");
ht.put("-14670","パイ");
ht.put("-14668","ピン");
ht.put("-14663","ping");
ht.put("-14654","ポ");
ht.put("-14645","pu");
ht.put("-14630","qi");
ht.put("-14594","qia");
ht.put("-14429","銭");
ht.put("-14407","強");
ht.put("-14399","喬");
ht.put("-14384","qie");
ht.put("-14379","秦");
ht.put("-14368","清");
ht.put("-14355","qiong");
ht.put("-14353","qiu");
ht.put("-14345","qu");
ht.put("-14170","クアン");
ht.put("-14159","que");
ht.put("-14151","qun");
ht.put("-14149","ラン");
ht.put("-14145","rang");
ht.put("-14140","ラオ");
ht.put("-14137","re");
ht.put("-14135","レン");
ht.put("-14125","reng");
ht.put("-14123","り");
ht.put("-14122","ロン");
ht.put("-14112","ルー");
ht.put("-14109","る");
ht.put("-14099","ルアン");
ht.put("-14097","るい");
ht.put("-14094","実行");
ht.put("-14092","るお");
ht.put("-14090","sa");
ht.put("-14087","sai");
ht.put("-14083","さん");
ht.put("-13917","歌った");
ht.put("-13914","sao");
ht.put("-13910","se");
ht.put("-13907","セン");
ht.put("-13906","seng");
ht.put("-13905","シャ");
ht.put("-13896","シャイ");
ht.put("-13894","シャン");
ht.put("-13878","シャン");
ht.put("-13870","シャオ");
ht.put("-13859","彼女");
ht.put("-13847","シェン");
ht.put("-13831","盛");
ht.put("-13658","し");
ht.put("-13611","しょう");
ht.put("-13601","シュ");
ht.put("-13406","シュア");
ht.put("-13404","シュアイ");
ht.put("-13400","シュアン");
ht.put("-13398","双");
ht.put("-13395","水");
ht.put("-13391","瞬");
ht.put("-13387","シュオ");
ht.put("-13383","si");
ht.put("-13367","曲");
ht.put("-13359","そう");
ht.put("-13356","su");
ht.put("-13343","スアン");
ht.put("-13340","スイ");
ht.put("-13329","太陽");
ht.put("-13326","suo");
ht.put("-13318","た");
ht.put("-13147","タイ");
ht.put("-13138","黄褐色");
ht.put("-13120","タン");
ht.put("-13107","タオ");
ht.put("-13096","て");
ht.put("-13095","テン");
ht.put("-13091","ti");
ht.put("-13076","ティアン");
ht.put("-13068","ティアオ");
ht.put("-13063","ネクタイ");
ht.put("-13060","ting");
ht.put("-12888","トン");
ht.put("-12875","とう");
ht.put("-12871","tu");
ht.put("-12860","トゥアン");
ht.put("-12858","tui");
ht.put("-12852","tun");
ht.put("-12849","tuo");
ht.put("-12838","わ");
ht.put("-12831","ワイ");
ht.put("-12829","wan");
ht.put("-12812","王");
ht.put("-12802","ウェイ");
ht.put("-12607","ウェン");
ht.put("-12597","ウェン");
ht.put("-12594","を");
ht.put("-12585","ウー");
ht.put("-12556","xi");
ht.put("-12359","xia");
ht.put("-12346","西安");
ht.put("-12320","翔");
ht.put("-12300","xiao");
ht.put("-12120","xie");
ht.put("-12099","xin");
ht.put("-12089","xing");
ht.put("-12074","xiong");
ht.put("-12067","xiu");
ht.put("-12058","xu");
ht.put("-12039","玄");
ht.put("-11867","xue");
ht.put("-11861","xun");
ht.put("-11847","や");
ht.put("-11831","ヤン");
ht.put("-11798","陽");
ht.put("-11781","yao");
ht.put("-11604","はい");
ht.put("-11589","yi");
ht.put("-11536","陰");
ht.put("-11358","ying");
ht.put("-11340","よ");
ht.put("-11339","ヨン");
ht.put("-11324","あなた");
ht.put("-11303","ゆ");
ht.put("-11097","元");
ht.put("-11077","yue");
ht.put("-11067","ゆん");
ht.put("-11055","ザ");
ht.put("-11052","ザイ");
ht.put("-11045","ザン");
ht.put("-11041","ザン");
ht.put("-11038","ザオ");
ht.put("-11024","ぜ");
ht.put("-11020","ゼイ");
ht.put("-11019","禅");
ht.put("-11018","ゼン");
ht.put("-11014","ザ");
ht.put("-10838","zhai");
ht.put("-10832","ザン");
ht.put("-10815","張");
ht.put("-10800","趙");
ht.put("-10790","zhe");
ht.put("-10780","zhen");
ht.put("-10764","鄭");
ht.put("-10587","志");
ht.put("-10544","中");
ht.put("-10533","州");
ht.put("-10519","朱");
ht.put("-10331","珠");
ht.put("-10329","珠愛");
ht.put("-10328","zhuan");
ht.put("-10322","荘");
ht.put("-10315","zhui");
ht.put("-10309","ズン");
ht.put("-10307","卓");
ht.put("-10296","zi");
ht.put("-10281","ゾン");
ht.put("-10274","ぞう");
ht.put("-10270","ず");
ht.put("-10262","ずあん");
ht.put("-10260","ずい");
ht.put("-10256","ずん");
ht.put("-10254","ずお");
ht.put("-10247","zz");
}
%>
<%...
if(request.getParameter("hz")!=null)
{
out.println(c(request.getParameter("hz")));
}
%>
<フォームメソッド=ポスト>
ここに中国語を入力してください: <input name=hz>
<input type="submit" value="Submit">
</form>
入出力結果の形式は次のとおりです。
例: 「ここに中国語を入力してください」と入力する
と、出力結果は次のようになります:
qing-14357
ザイ-11046
ci-19253
chu-19290
shu-13596
ru-14101
中-10544
Wen-12604
はピンインで書かれ、その後に計算されたコードが続きます (なぜこのような数字が得られるのかはわかりません)。一般的に使用されない漢字が追加されていない場合は、コードのみが表示され、コードは表示されません。現時点では、ht.put("-10247","zz"); の形式でピンインを追加することができます。