[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00075] Re: String を byte 配列で書き出す方法について
石黒様、みどり様ありがとうございます。
1.DBから取り出した値の頭に0xをつける
2.parseByteで16進数に変換する
以上2つの処理は結局同じことですね、 私が、
parseByteで16進数に変換するという意味を取り違えて
おりました。申し訳ありません。
しかし、16進数に変換する文字列に下記の値が入っていると
NumberFormatExceptionでエラーが返されます。
parseByteを使用して16進数と解析されない下記のような値
についてはどのようにして「0x87」の形にすればよいかが
分からなくて悩んでおります。
String strA = "87";
String strB = "A7";
byte bytA = Byte.parseByte(strA , 16); →エラー
byte strB = Byte.parseByte(strB , 16); →エラー
なぜ今回、0xを付与したバイトでの書き出しに
拘っているかというと下記のソースAと同じ動き
をするソースを作りたいからです。
<ソースA>
byte[] b = new byte[3];
b[0] = 0x07; //('G')
b[1] = (byte)0x87; //(外字コード)
b[2] = (byte)0xA7; //(外字コード)
書き出されたファイルは「G・」(外字)となる。
0xを付与しなければ、(byte)A7 でエラーになりますし、
バイトで書き出さなければ、ファイルは、「0xA7」が
そのまま出力されてしまうので、上記条件に拘っています。