IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Java:将字符串转换为hex(Byte) -> 正文阅读

[网络协议]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;
}
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 18:03:38  更:2021-12-01 18:04:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/6 8:29:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码