0

私はJavaでプログラミングしています。プログラムには、以下のような文字列があります。

String str = "byte."

上記の文字列を以下のように 16 進バイトの配列に変換できますか?

byte[] data = {0x62, 0x79, 0x74, 0x65};

ありがとうございました。

4

1 に答える 1

5

「16進バイト」というものはなく、「10進整数」と「16進整数」以上のものはありません。

ただし、文字列をバイト配列に変換することはできます。例えば:

byte[] data = str.getBytes("UTF-8");

ここのUTF-8部分は、使用するエンコーディングの名前です。エンコーディングは事実上、Unicode 文字とバイト間のマッピングです。(それよりもやや複雑ですが、最初の概算としては適切です。)

のパラメーターなしのオーバーロードがあります、使用しないことをString.getBytes()強くお勧めします。これは、プラットフォームの既定のエンコーディングを選択するため、めったに良い考えではありません。

を取得するオーバーロードを使用することもできます。これは、次のように記述できるGuavaCharsetなどのライブラリと組み合わせて使用​​ することでより適切になります。

byte[] data = str.getBytes(Charsets.UTF_8);

...そのため、文字列表現に依存しなくなりました。

于 2012-05-15T07:13:01.117 に答える