• ベストアンサー

2byte文字の判定

お世話になります。 2バイト文字かどうかの判定のやり方ですが、 String a = "";//←判定したい1文字(とりあえずStringとします) byte[] b = a.getByte(); if((int)b[0]<0){ //2byte文字 }else{ //1byte文字 } という判定の方法はありですか? それとも根本的に考え方間違えてますでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

それもまあありだとは思いますが、私なら正直にこうします。 String a = "あ"; // 判定したい1文字 switch (a.getBytes("Shift_JIS").length) { case 1:  // 1バイト文字  break; case 2:  // 2バイト文字  break; default:  // 何かがおかしい  break; } また、上のよりも早い方法としては、 char c = 'あ'; // 判定したい1文字 if ((0x20 <= c && c <= 0x7f) || (0xff61 <= c && c <= 0xff9f)) { // 1バイト文字である } else { // 1バイト文字ではない } ただし、これらの方法では判定したい文字がJISにない文字だった場合のための例外処理が行えません。

chi-kon
質問者

お礼

アドバイスありがとうございます。 そうですね。 変にややこしく考えていたのかもしれません。 私の考えでもまぁありということなので ちょっと安心致しました。 ありがとうございました!

関連するQ&A