zoukankan      html  css  js  c++  java
  • 字符串、bute[]数组和十六进制字符串的相互转换

    1、字符串转换成十六进制字符串
    public static String str2HexStr(String str) {
            if (EncodingUtil.isEmpty(str)) {
                return "";
            }
            char[] chars = "0123456789ABCDEF".toCharArray();
            StringBuilder sb = new StringBuilder("");
            byte[] bs = new byte[0];
            try {
                bs = str.getBytes("GBK");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            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]);
            }
            return sb.toString();
        }

    2、16进制字符串转换为byte数组

    public static byte[] hexStringToBytes2(String hexString) {
            if (hexString == null) {            // 判断源字符串是否为空
                return null;
            }
            String tmp = "0123456789ABCDEF";
            char[] hexChars = hexString.toCharArray();
            int len = hexString.length();
            byte[] bytes = new byte[len / 2];    // 创建字节数组空间
    
            for (int i = 0; i < len; i += 2) {    //
                bytes[i / 2] = (byte) ((tmp.indexOf(hexChars[i]) << 4) | tmp.indexOf(hexChars[i + 1]));
            }
            return bytes;
        }

     3、byte[]数组转换为16进制字符串

        public static String bytesToHexString(byte[] bytes) {
            if (bytes == null)
                return null;
            StringBuffer stringBuffer = new StringBuffer(bytes.length * 2);
            for (byte b : bytes) {
                if ((b & 0xFF) < 0x10) {
                    stringBuffer.append('0');
                }
                stringBuffer.append(Integer.toHexString(0xFF & b));
            }
    
            return stringBuffer.toString().toUpperCase(Locale.getDefault());
        }
    

      

  • 相关阅读:
    MySQL锁机制和主从复制
    MySQL索引优化
    MySQL的Explain
    事务并发问题和隔离级别
    解决angular单页面页面底部跳转到新页面滚动条不在顶部的问题
    关于字符串在ie浏览器拼接问题
    angular 新建命令
    angular 多路由模块新建组件的方法
    Angular 4.x NgClass ngStyle 指令用法
    slideDown()、slideUp()反复执行的问题
  • 原文地址:https://www.cnblogs.com/jing5464/p/10172606.html
Copyright © 2011-2022 走看看