android String的16进制的值怎么放到byte里

例如 String s1 =Integer.toHexString(168);
转出了个16进制的值是a8,我想直接吧他变成0Xa8放到byte数组里,怎么放

2个回答

可以这样:

 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;
}

xchchx
xchchx 回复囧丶: 如果是String那就用下面的代码,转一下就可以了
3 年多之前 回复
d519702907
囧丶 我得到的不是byte类型是String类型的,我想直接放进去例如byte b[] = {0X68};因为是动态的,我又不能直接这么写
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐