特定のStringをbyte []に変換しようとしています。特定の文字列をbyte []に変換する
ザ・文字列は次のようになります。 55 55 F5 FF FF
を、ここで私はそれのために書いた方法であり、誰かが間違っているか、よりよい解決策を持っているものを私に伝えることができると思います。
public static byte[] stringToByte(String text) {
//byte[] length ==> String (length+1)/3
byte raw[] = new byte[(text.length() + 1)/3];
int j = 0;
for (int i = 0; i < text.length(); i += 2) {
String h = "";
h += text.charAt(i);
h += text.charAt(i + 1);
i++;
raw[j] = Byte.valueOf(h);
j++;
}
return raw;
}
問題はF5になるまでは問題です。私はあなただけのスペース区切りの文字列をループしてバイトオブジェクトを解析しているように見えます
byte raw[] = {(byte) 0x55, (byte) 0x55, (byte) 0x5F,(byte) 0xFF,(byte) 0xFF};
ごめんなさい。私が "raw = text.getBytes();"を使うと、私は14の位置で配列を取得しますが、私は私の質問で最後のコードブロックのように5と1つが必要です。 – Jay
'Byte.valueOF'のドキュメントを見ると、' 'parseByte'を指し示します。"文字列中の文字はすべて、10進数字でなければなりません。ただし、最初の文字はASCIIマイナス記号かもしれません " 。だから、あなたが 'F'を与えると、それが爆発するのです。 –
ああ、今私は見る - 私はこれが合うと思う:http://stackoverflow.com/questions/140131/convert-a-string-representation-of-a-hex-dump-to-a-byte-array-using -java – birryree