• byte[] 转Hex String


    一、一个字符串转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;
    }                

     

  • 相关阅读:
    react dva routerRedux 备忘
    vue实现tab切换
    ios手机弹出层上表单的操作,收起键盘焦点错乱的问题
    FLEX布局
    new Date在ios下的兼容bug
    大数据分析如何创建最佳的移动应用用户体验
    Django适合做大用户量的系统吗?
    用 Django 管理现有数据库
    djongo:Django和MongoDB连接器
    5分钟教你学会Django系统错误监控
  • 原文地址:https://www.cnblogs.com/yoyotl/p/7510436.html
Copyright © 2020-2023  润新知