[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」が
そのまま出力されてしまうので、上記条件に拘っています。