JAVA中有多个十六进制字符串转成Byte数组,有什么方法
这是一个16进制的字符串:1A543C3265C133D23F416E21,需要转成byte[]...
这是一个16进制的字符串:1A54 3C32 65C1 33D2 3F41 6E21,需要转成byte[]
展开
1个回答
展开全部
给你如下两个方法,你可以试试:
public static byte uniteBytes(byte str0, byte str1) {
byte _b0 = Byte.decode("0x" + new String(new byte[]{str0})).byteValue();
_b0 = (byte)(_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[]{str1})).byteValue();
byte ret = (byte)(_b0 ^ _b1);
return ret;
}
public static byte[] HexString2Bytes(String str){
byte[] ret = new byte[str.length()/2];
byte[] tmp = str.getBytes();
for(int i=0; i<str.length()/2; i++){
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
demo:
String str = "1A543C3265C133D23F416E21"
byte[] by = HexString2Bytes(str);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询