• ベストアンサー

バイト数の取得について

Byteについて初心者なもので、詳しく教えて頂けませんか? 例)文字列:String str = "123あいう"; 5文字取得したい場合、     str.subString(0,5) ・・・ "123あい" と取得されますが、 5バイト取得("123あ")の場合、どのようにコーディングすればよろしいのでしょうか?

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

何を基準に5バイト取るかによります。 例えば、下のコードはShiftJISで5バイト分の文字列を取得する場合です。 String text = "123あいう"; byte[] rawBytes = text.getBytes("Shift_JIS"); text = new String(rawBytes, 0, 5, "Shift_JIS"); 上記の場合は「123あいう」だから上手く5バイト分の文字列が取得できましたが、「あいう123」だったらどうなるでしょうか? また、Shift_JISでなかったら(例えばUTF-16だったら)どうなるでしょうか? その辺りを踏まえてバイト数で文字を扱うべきなのか考えてみましょう。

noname#23059
質問者

お礼

ありがとうございます。 もう少し、考えてみたいと思います。

関連するQ&A