我试图将特定字符串转换为字节[]。将特定字符串转换为字节[]
的字符串看起来像: 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个像我的问题中的最后一个代码块。 – Jay
如果您查看“Byte.valueOF”的文档,它会指向'parseByte',其中指出“字符串中的字符必须全部为十进制数字,但第一个字符可能是ASCII减号” 。这就是为什么当你给它一个“F”时它会爆炸。 –
哦,现在我明白了 - 我认为这个适合:http://stackoverflow.com/questions/140131/convert-a-string-representation-of-a-hex-dump-to-a-byte-array-using -java – birryree