java中byte[] 和16进制字符串互转

Posted 范世强的笔记(SEC-fsq)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中byte[] 和16进制字符串互转相关的知识,希望对你有一定的参考价值。


//将byte[]转换为16进制字符串

public static String byte2hex(byte[] b) {
    StringBuilder hs = new StringBuilder();
String stmp;
for (int n = 0; b != null && n < b.length; n++) {
stmp = Integer.toHexString(b[n] & 0XFF);
if (stmp.length() == 1)
hs.append(‘0‘);
hs.append(stmp);
}
return hs.toString().toUpperCase();
}



//将16进制字符串转换为byte[]
public static byte[] toBytes(String str) {
if(str == null || str.trim().equals("")) {
return new byte[0];
}

byte[] bytes = new byte[str.length() / 2];
for(int i = 0; i < str.length() / 2; i++) {
String subStr = str.substring(i * 2, i * 2 + 2);
bytes[i] = (byte) Integer.parseInt(subStr, 16);
}

return bytes;
}



参考:https://blog.csdn.net/worm0527/article/details/69939307































以上是关于java中byte[] 和16进制字符串互转的主要内容,如果未能解决你的问题,请参考以下文章

最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类

进制之间互转

使用Apache的Hex类实现Hex(16进制字符串和)和字节数组的互转

Java File ,byte[] , 二进制字符串之间互转

16进制与字符串互转函数

java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据?