- ベストアンサー
2byte文字の判定
お世話になります。 2バイト文字かどうかの判定のやり方ですが、 String a = "";//←判定したい1文字(とりあえずStringとします) byte[] b = a.getByte(); if((int)b[0]<0){ //2byte文字 }else{ //1byte文字 } という判定の方法はありですか? それとも根本的に考え方間違えてますでしょうか??
- みんなの回答 (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にない文字だった場合のための例外処理が行えません。
お礼
アドバイスありがとうございます。 そうですね。 変にややこしく考えていたのかもしれません。 私の考えでもまぁありということなので ちょっと安心致しました。 ありがとうございました!