Java Hex 16进制的 byte String 转换类 .

Java byte[] 和 String互相转换 通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等。 除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常String代表文本字符串,byte数组针对二进制数据 通过String类将String转换成byte[]或者byte[]转换成String 用String.getBytes()方法将字符串转换为byte数组,通过String构造函数将byte数组转换成String 注意:这种方式使用 阅读详情
package mobi.dzs.util;

/**
 * 16进制值与String/Byte之间的转换
 * @author JerryLi
 * @email lijian@dzs.mobi
 * @data 2011-10-16
 * */
public class CHexConver
{
	/** 
	 * 字符串转换成十六进制字符串
	 * @param String str 待转换的ASCII字符串
	 * @return String 每个Byte之间空格分隔,如: [61 6C 6B]
	 */  
    public static String str2HexStr(String str)
    {  

        char[] chars = "0123456789ABCDEF".toCharArray();  
        StringBuilder sb = new StringBuilder("");
        byte[] bs = str.getBytes();  
        int bit;  
        
        for (int i = 0; i < bs.length; i++)
        {  
            bit = (bs[i] & 0x0f0) >> 4;  
            sb.append(chars[bit]);  
            bit = bs[i] & 0x0f;  
            sb.append(chars[bit]);
            sb.append(' ');
        }  
        return sb.toString().trim();  
    }
    
    /** 
     * 十六进制转换字符串
	 * @param String str Byte字符串(Byte之间无分隔符 如:[616C6B])
	 * @return String 对应的字符串
     */  
    public static String hexStr2Str(String hexStr)
    {  
        String str = "0123456789ABCDEF";  
        char[] hexs = hexStr.toCharArray();  
        byte[] bytes = new byte[hexStr.length() / 2];  
        int n;  

        for (int i = 0; i < bytes.length; i++)
        {  
            n = str.indexOf(hexs[2 * i]) * 16;  
            n += str.indexOf(hexs[2 * i + 1]);  
            bytes[i] = (byte) (n & 0xff);  
        }  
        return new String(bytes);  
    }
    
    /**
     * bytes转换成十六进制字符串
     * @param byte[] b byte数组
     * @return String 每个Byte值之间空格分隔
     */
    public static String byte2HexStr(byte[] b)
    {
        String stmp="";
        StringBuilder sb = new StringBuilder("");
        for (int n=0;n<b.length;n++)
        {
            stmp = Integer.toHexString(b[n] & 0xFF);
            sb.append((stmp.length()==1)? "0"+stmp : stmp);
            sb.append(" ");
        }
        return sb.toString().toUpperCase().trim();
    }
    
    /**
     * bytes字符串转换为Byte值
     * @param String src Byte字符串,每个Byte之间没有分隔符
     * @return byte[]
     */
    public static byte[] hexStr2Bytes(String 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;
            ret[i] = Byte.decode("0x" + src.substring(i*2, m) + src.substring(m,n));
        }
        return ret;
    }

    /**
     * String的字符串转换成unicode的String
     * @param String strText 全角字符串
     * @return String 每个unicode之间无分隔符
     * @throws Exception
     */
    public static String strToUnicode(String strText)
    	throws Exception
    {
        char c;
        StringBuilder str = new StringBuilder();
        int intAsc;
        String strHex;
        for (int i = 0; i < strText.length(); i++)
        {
            c = strText.charAt(i);
            intAsc = (int) c;
            strHex = Integer.toHexString(intAsc);
            if (intAsc > 128)
            	str.append("\\u" + strHex);
            else // 低位在前面补00
            	str.append("\\u00" + strHex);
        }
        return str.toString();
    }
    
    /**
     * unicode的String转换成String的字符串
     * @param String hex 16进制值字符串 (一个unicode为2byte)
     * @return String 全角字符串
     */
    public static String unicodeToString(String hex)
    {
        int t = hex.length() / 6;
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < t; i++)
        {
            String s = hex.substring(i * 6, (i + 1) * 6);
            // 高位需要补上00再转
            String s1 = s.substring(2, 4) + "00";
            // 低位直接转
            String s2 = s.substring(4);
            // 将16进制的string转为int
            int n = Integer.valueOf(s1, 16) + Integer.valueOf(s2, 16);
            // 将int转换为字符
            char[] chars = Character.toChars(n);
            str.append(new String(chars));
        }
        return str.toString();
    }
}

YOLOv5算法改进(22)— 更换主干网络MobileNetv3 + 添加CA注意力机制 本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络MobileNetv3 + 添加CA注意力机制),小白必学~!🌈 阅读详情

相关推荐

四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

移位寄存器有哪些分类呢? 按移位方向分类:①单向移位寄存器(包括左移、右移)②双向移位寄存器 按循环方式分类:①循环移位寄存器②非循环移位寄存器 按部位的不同分类:①逻辑移位寄存器②算术移位寄存器 按输入输出方式分类:①串入串出②串入并出③并入串出④并入并出

Loudrs的博客 1万+

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 */

星维数智的技术专栏 5870

三种1:4传输线变压器巴伦的分析

满足多模多馈天线系统匹配要求的传输线变压器巴仑有:双线传输线变压器( 见图1) 、三线传输线变压器( 见图4) 和四线传输线变压器( 见图5) 。尽管3 者的结构不同, 但都可实现1∶4 阻抗变换和不平衡-平衡转换。下面就应用电报方程对它们的阻抗变换特性和输出平衡特性进行分析。

weixin_42407808的博客 8041

java byte[]转16进制字符串

1 * Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串。 2 * @param src byte[] data 3 * @return hex string 4 */ 5 public static String bytes...

weixin_30699443的博客 389

【GESP】C++四级考试大纲知识点梳理, (10) 文件读写和重定向

其实,由于本人也是边学、边实验、边总结,且对考纲深度和广度的把握属于个人理解。因此本文更多的不是一个教程,而是个人知识梳理,如有遗漏、疏忽,欢迎指正、交流。孩子放假,出游一周,没有更新。刚刚归来,继续学习。GESP C++四级官方考试大纲中,共有11条考点,本文针对第10条考点进行分析介绍。(10)掌握文件操作中的重定向,实现文件读写操作,了解文本文件的分类,掌握写操作、读操作、读写操作。GESP C++四级官方考试大纲中,共有11条考点,本文针对第10条考点进行分析介绍。孩子放假,出游一周,没有更新。

CoderCoding的博客 525

dbt+Snowflake实战:数据建模、权限隔离与性能优化全指南

dbt(data build tool)作为现代数据栈的核心建模工具,其与Snowflake的深度协同远不止于SQL编译执行——它本质是将软件工程实践(如版本控制、测试驱动、CI/CD)注入数据交付流程。理解dbt的声明式建模原理与Snowflake的虚拟仓库、Time Travel、TRANSIENT表、聚簇键等底层机制如何咬合,是实现可维护、可审计、低成本数据产品交付的关键。本文聚焦dbt在Snowflake环境中的真实落地挑战,涵盖schema与warehouse的物理映射设计、role级硬隔离策略、

weixin_34389926的博客 312

JAVA常用的各种字符串,byte,hex转换

总结平时遇到的各种字符串,byte,hex之间的相互转换 /* * 将16进制数字解码成字符串,适用于所有字符(包括中文) */ public static String hexStr2Str(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream( bytes.length() / 2); String hexString = ...

chali1314的博客 2496

告别定位不准!Inner-IoU助力YOLOv11边界框回归精度飙升

Inner-IoU 凭借辅助边框的创新设计,成功解决了传统 IoU 损失在小目标、遮挡场景下的收敛难题,为 YOLOv11 注入了更强的定位能力。从原理剖析到代码集成,本教程已为你铺就了一条“精度提升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“精度优异”的答卷——相信我,当你看到检测框精准贴合目标的那一刻,你会明白这份尝试的价值。

FJN110的博客 188

JAVA String与Hex互转

public class StringToHex { /** * 字符串转换为16进制字符串 * * @param s * @return */ public static String stringToHexString(String s) { String str = ""; ...

sdjkjsdh的博客 3万+

华为od 面试八股文_C++_02_含答案

华为od 面试八股文_C++_02_含答案

MISAYAONE的博客 3121

【OpenClaw从入门到精通】第34篇:医疗AI的“Agent OS”时代:基于WiseClaw构建医院专属智能体平台(2026实测版)

2026年医疗AI迈入实战落地新阶段,全球首个医疗OpenClaw平台WiseClaw正式发布,香港中文大学(深圳)医院完成业内首个私有化部署。本文基于真实医疗场景需求与公开技术资料,系统拆解医疗智能体平台的建设逻辑:从医疗Agent OS的五大核心特性切入,详解门诊病历质控、用药审查、医院运行管理三大临床场景的智能体搭建流程,提供完整的私有化部署代码、安全配置方案与实操演示。文章兼顾新手入门与进阶需求,严格遵循医疗合规要求,强调“只读不写+人工复核”原则,所有方案均经过虚拟实测验证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 786

Java Hex 16进制的 byte String 转换类

因为工作上的需要,整理了一份 16进制的 byte String值转换的类。 有需要的朋友可以直接拿去用。

hzbigdog的专栏 5万+

深度强化学习调参技巧:以DQN、DDPG、TD3、PPO、SAC等算法为例

深度强化学习调参技巧:以D3QN、DDPG、TD3、PPO、SAC算法为例

丨汀、的博客 3442

java 16进制 to string_Java Hex 16进制的 byte String 转换类 | 学步园

因为工作上的需要,整理了一份 16进制的 byte String值转换的类。有需要的朋友可以直接拿去用。package mobi.dzs.util;/*** 16进制值与String/Byte之间的转换* @author JerryLi* @email lijian@dzs.mobi* @data 2011-10-16* */public class CHexConver{/*** 字符串转换成十...

weixin_33764463的博客 366

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java hexstring2bytes_Java Hex 16进制的 byte String 转换类

packagemobi.dzs.android.util;importjava.util.Locale;/*** 16进制值与String/Byte之间的转换*@authorJerryLi* @email lijian@dzs.mobi* @data 2011-10-16**/public classCHexConver{private final static char[] mChars = "...

weixin_30399511的博客 2228

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java进制处理------16进制字符串 与普通字符串 与 byte数组 之间的转化

方法依赖commons-codec包 maven的引入方式如下 <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.12</version> </dependency> 普通字符串转换为16进制字符串 /** * 将普通字符串转换为1

奔跑入坑大数据 513

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java中String字符串转换十六进制Hex类型

Java中String字符串转换十六进制Hex类型 今天我们说一下Java中 String字符串转换为Hex十六进制字符串、byte[]字节数组转换Hex十六进制字符串。 好,接下来代码走起来--------> 1、字符串转换为十六进制字符串 public static String stringToHexString(String s) { String str = ""; for (int i = 0; i < s.length();

qq_42889895的博客 1万+

java中进制的转换,Byte与16进制的转换方法

java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制 ...

shuyuan0513的博客 1万+
下一篇: C语言中冒泡排序,插入排序,选择排序
豆丁
博客等级 码龄14年 8粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值