zoukankan      html  css  js  c++  java
  • java将字符串转换为指定编码的16进制字符串,将该16进制字符串转换为byte数组

    最近开发任务是和摄像机彩屏进行通讯。在进行串口通讯时需要传输byte数组,而当内容为中文时需要指定GBK编码,否则会乱码。所以总结下这两个java方法。

     1     /**
     2      * 将字符串转为指定编码的16进制
     3      *
     4      * @param str
     5      * @return
     6      */
     7     public static String encode(String str) throws Exception {
     8         String hexString = "0123456789ABCDEF";
     9         //根据编码获取字节数组
    10         byte[] bytes = str.getBytes("GBK");
    11         StringBuilder sb = new StringBuilder(bytes.length * 2);
    12         //将字节数组中每个字节拆解成2位16进制整数
    13         for (int i = 0; i < bytes.length; i++) {
    14             sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
    15             sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
    16         }
    17         return sb.toString();
    18     }
     1     /**
     2      * 将16进制字符串转换为byte[]
     3      *
     4      * @param str
     5      * @return
     6      */
     7     public static byte[] toBytes(String str) {
     8         if (str == null || str.trim().equals("")) {
     9             return new byte[0];
    10         }
    11 
    12         byte[] bytes = new byte[str.length() / 2];
    13         for (int i = 0; i < str.length() / 2; i++) {
    14             String subStr = str.substring(i * 2, i * 2 + 2);
    15             bytes[i] = (byte) Integer.parseInt(subStr, 16);
    16         }
    17 
    18         return bytes;
    19     }
  • 相关阅读:
    junit单元测试踩过的坑
    Arrays.asList()需要注意的点
    oracle数据库学习笔记
    实训笔记
    spring事务学习笔记
    java锁
    jvm内存模型
    iOS 应用架构 (三)
    iOS 应用架构 (二)
    iOS 应用架构 (一)
  • 原文地址:https://www.cnblogs.com/lujiannt/p/9237307.html
Copyright © 2011-2022 走看看