「MYSTERY TOWER」制作日記

今まで悩んだのが嘘のようにうまくいった2月28日

チャットの日本語化で、さんざん苦労したが、昨日バイト中にアイデア
がひらめいて、家に帰ってさっそくプログラムしてみた。そして、今日
は、バイトが休みなので、学校に出てきて、試してみた。

そうすると、なんともあっけなくできてしまった。12月から悩んでいた
のに、こんな簡単にできてしまっていいのだろうかと思ってしまった。

プログラムのアイデア自体は、昨日の分に書いたとおりだけど、実際に
は、
public String encode(String input)
{
  String output="";
  int i,j;
  char bara[];
  bara= new char[800];
  input.getChars(0,input.length(),bara,1);
  for (i=1;i<=input.length();i++)
  {
     j=bara[i];
     output=output+j+"a";
  }
  return output;
}

public String decode(String input)
{
  String output="";
  String temp="";
  int i;
  char bara[];
  bara= new char[800];
  input.getChars(0,input.length(),bara,1);
  for (i=1;i<=input.length();i++)
  {
  if (bara[i]=='a')
   {
     output=output+(char)Integer.parseInt(temp);
     temp="";
   }
   else
   {
     temp=temp+bara[i];}
   }
   return output;
}

って感じでした。サーバーに送りたい全角文字(別に半角が混じっても
構わない)をencodeにかけて、サーバーから取ってきた半角文字をdecode
すれば、全角半角の区別をつけずにすむようになります。
テストバージョンだったので、適当に決めましたけど、うまく動くので、
そのまま使ってしまいました。encodeの800ってのは、適当に決めたもの
なので、勝手に増やせば、それだけ、一度に変換できる文字数が増えると
思います。ほんとは、きちんと、バイト数を調べるのが正しいのでしょう
けど、めんどくさいので調べませんでした。また、数字の間に「a」って
のが入りますけど、全く意味はないです。とにかく数字を分ければよかっ
ただけです。
もっといいアルゴリズムがあるかもしれませんけど、とりあえず実用には
なるので、僕は、これでよしとしてしまいました。また、数字だけに変換
してしまうので、ちょっと容量は食ってしまいます。でも、チャットなら、
容量なんて少ないので、僕は、気にしませんでした。

前のページに戻ります