- ベストアンサー
char型からのバイト数取得
文字列から1文字ずつバイト数を取得(判定)したいのですが、 char型の文字のバイト数を取得するスマートな方法はありますか? 今考えているのは以下のようなコードです。 String str ="あA" for(int i=0; i < str.length(); i++) { char ch = str.charAt(i); StringBuffer SB = new StringBuffer(); SB.append(c); if(SB.toString().getBytes.length == 1) { //1バイトの処理 } else { //2バイトの処理 } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もっと根本的に直す方法があるかもしれませんが、 とりあえずこんな感じで少しすっきりすると思います。 String str ="あA"; char[] ch = str.toCharArray(); for(int i=0; i < ch.length; i++) { int bytes = Character.toString(ch[i]).getBytes().length; 以下略
その他の回答 (1)
- rinkun
- ベストアンサー率44% (706/1571)
char ch = str.charAt(i); に対して int l = Character.toString(ch).getBytes().length; でプラットフォームのデフォルト文字セットでの文字のバイト長lが得られます。 文字セットを指定したい場合は int l = Character.toString(ch).getBytes(charsetName).length; とすればよいでしょう。 ただし、文字列を1文字ごと処理するならcharを使わずsubstringで一文字文字列を抽出してしまう方が簡単かもしれません。 すなわち String ch = str.substring(i, i+1); int l = ch.getBytes().length; のようにです。
お礼
回答ありがとうございました!
お礼
回答ありがとうございました。 アドバイスいただいたようにしてみます!