例如 String s1 =Integer.toHexString(168);
转出了个16进制的值是a8,我想直接吧他变成0Xa8放到byte数组里,怎么放
可以这样:
byte[] bytes = s1.getBytes(Charsets.UTF_8);
如果对您有帮助,请采纳答案好吗,谢谢!
byte a=168和byte a=0xa8 是一样的,直接赋值就可啊。
如果你是拿到了一个16进制的字符串如“a689b6cd78”这样的,想转成byte[]。如下
/** 将hex字符串转换成字节数组 **/
private static byte[] hex2byte(String inputString) throws Exception {
if (inputString == null || inputString.length() < 2) {
return new byte[0];
}
int l = inputString.length() / 2;
byte[] result = new byte[l];
for (int i = 0; i < l; ++i) {
String tmp = inputString.substring(2 * i, 2 * i + 2);
result[i] = (byte) (Integer.parseInt(tmp, 16) & 0xFF);
}
return result;
}