首页 > 其他分享 >byte[] 转Hex String

byte[] 转Hex String

时间:2023-01-03 18:24:10浏览次数:45  
标签:byteArray return String Hex length new byte

一、一个字符串转byte数组怎么转?

byte[] byteArray = String.getBytes();

二、又想把生成的数组转回字符串怎么办?

String covertString = new String(byteArray);

以上的轻松愉快仅限于字符串之间互转(适当的时候还要注意编码格式)。

三、如果一个的数值byte[]数组怎么转成字符串?例如:

byte[] byteArray = new byte[]{-60,60};

如果用new String(byteArray)直接转,会丢失负数信息(毕竟char的取值范围和byte的取值范围不一样)。

所以一个较好的策略是把byte信息转成16进制的字符串,方便再从16进制字符串转回byte数组。

3.1 byte[]转成Hex String

复制代码
public static String byteArrayToHexStr(byte[] byteArray) {
    if (byteArray == null) {
        return null;
    }
    char[] hexArray = "0123456789ABCDEF".toCharArray();
    char[] hexChars = new char[byteArray.length * 2];
    for (int j = 0; j < byteArray.length; j++) {
        int v = byteArray[j] & 0xFF;
        hexChars[j * 2] = hexArray[v >>> 4];
        hexChars[j * 2 + 1] = hexArray[v & 0x0F];
    }
    return new String(hexChars);
}
复制代码

3.2 Hex String转成byte[]

复制代码
public static byte[] hexStrToByteArray(String str) {
    if (str == null) {
        return null;
    }
    if (str.length() == 0) {
        return new byte[0];
    }
    byte[] byteArray = new byte[str.length() / 2];
    for (int i = 0; i < byteArray.length; i++) {
        String subStr = str.substring(2 * i, 2 * i + 2);
        byteArray[i] = ((byte) Integer.parseInt(subStr, 16));
    }
    return byteArray;
}                
复制代码

 

 

标签:byteArray,return,String,Hex,length,new,byte
From: https://www.cnblogs.com/kn-zheng/p/17023067.html

相关文章

  • java StringUtils字符串工具类
    /***通用常量信息**@authorruoyi*/publicclassConstants{/***UTF-8字符集*/publicstaticfinalStringUTF8="UTF-8";/......
  • js String对象学习
    //charAt()方法从一个字符串中返回指定的字符。letstr='WinterWang'console.log(str.charAt(1))//i//includes()方法用于判断一个字符串是否包含在另一......
  • LEAK: ByteBuf.release() was not called before it‘s garbage-collected
    ByteBufbyteBuf=(ByteBuf)msg;log.info(ctx.channel().remoteAddress()+"接收到客户端发送的数据:");//获取数据Stringdata=byteBuf.toString(CharsetUtil.UTF......
  • github pages + Hexo + 域名绑定搭建个人博客增强版
    概述前面我们用githubpages+Hexo搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle的主题进行优化和完善。基本搭建请访问主题配......
  • 基于hexo的博客搭建
    <!--more-->1安装nodejsHexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。windows:nodejs选择LTS版本就行了。Mac:nodejs选择LTS版本就行了。网......
  • StringBuilder-2023-1-2
    在Java中,除了可以使用String类来存储字符串,还可以使用StringBuilder类或StringBuffer类存储字符串,那么它们之间有什么区别呢?String类具有是不可变性。如运行结果......
  • G. Maximize the Remaining String
    G.MaximizetheRemainingString题意给定一个字符串如果某个字符在字符串中出现了超过两次就删掉其中一个字符直到最后字符串中包含的字符都只出现一次为止求操作......
  • C++ string 基本用法
    一、C++string的创建方式1、string的头文件#include<iostream>//等价于C语言中的#include<stdio.h>#include<cstring>#include<string.h>//以上两种都是C语言的string头......
  • C/C++ 调用标准库函数实现 std::string to std::wstring 相互字符集变换(转)
    转自:https://blog.csdn.net/liulilittle/article/details/127697458#include<locale>#include<codecvt>#include<string>#include<vector>#if_MSC_VER>=1600......
  • JAVA零基础小白免费学习教程之Object类和String类
    day10-JAVAOOP课程目标1.【理解】什么是API2.【掌握】API的使用方式3.【理解】Object类4.【掌握】Object类中的equals方法5.【掌握】String类中的常用方法API......