Java:将字符串转换为hex(Byte)
Posted 秦晓宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:将字符串转换为hex(Byte)相关的知识,希望对你有一定的参考价值。
1、前言
最近在做展馆的中控物联网控制的时候,遇到了需要通过远程控制指令将UDP指令发送至设备的情况。如图所示,通过系统的发送指令,就能向指定IP的设备发送UDP指令,达到控制现场灯具的亮灭。
2、将字符串转换为Byte数组
/**
* @Description: 字符串转byte数组
* @Title: hexStr2Bytes
* @param src
* @return byte[]
* @author qin
* @date 2021年11月30日下午5:31:30
*/
public static byte[] hexStr2Bytes(String src)
src = src.replaceAll(" ", "");
System.out.println(src);
int m = 0, n = 0;
int l = src.length() / 2;
System.out.println(l);
byte[] ret = new byte[l];
for (int i = 0; i < l; i++)
m = i * 2 + 1;
n = m + 1;
String sss = "0x" + src.substring(i * 2, m) + src.substring(m, n);
System.out.println("sss["+i+"]:"+sss);
try
ret[i] = Byte.decode(sss);
catch (Exception e)
// TODO: handle exception
int s = Integer.decode(sss);
ret[i] = (byte)s;
return ret;
/**
* @Description: 主函数
* @Title: main
* @param args void
* @author qin
* @date 2021年11月30日下午5:32:12
*/
public static void main(String[] args)
String hexstr = "1B 43 DD 0D 0A C9 00 00";
byte[] b = hexStr2Bytes(hexstr);
for (int c : b)
System.out.println(c);
3、Debug信息
可以看到通过上面的转换代码将 String hexstr = “1B 43 DD 0D 0A C9 00 00”; 转换为了byte数组。
4、可能遇到的问题
在这里使用Byte.decode(sss);转换的时候,如果转换的hex大于128,则会报异常,这样需要在转换失败的时候先转换为int型,再强制转换为byte类型即可。
try
ret[i] = Byte.decode(sss);
catch (Exception e)
// TODO: handle exception
int s = Integer.decode(sss);
ret[i] = (byte)s;
以上是关于Java:将字符串转换为hex(Byte)的主要内容,如果未能解决你的问题,请参考以下文章