[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00077] Re: String を byte 配列で書き出す方法について
石黒です。
エラー行の
> byte bytA = Byte.parseByte(strA , 16); →エラー
> byte strB = Byte.parseByte(strB , 16); →エラー
これらを
byte bytA = (byte)Integer.parseInt(strA , 16);
byte bytB = (byte)Integer.parseInt(strB , 16);
こうするんで、どうでしょう。
よろしく。
----- Original Message -----
From: "Yumiko Hiyama" <hiyama@xxxxxxxxxxxxx>
To: <jfriends@xxxxxxxxxxxx>
Sent: Thursday, January 30, 2003 2:00 PM
Subject: [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」が
> そのまま出力されてしまうので、上記条件に拘っています。
>
>
>
>
>
>
>
>
>
>
>
>
>