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