java byte数组与16进制字符串、字符串转换

java socket通信中,UDP采用DatagramSocket进行接收receive和发送send, TCP则采用ServerSocket进行收发,经常会碰到一些byte数组与字符串,16进制字符串的相互转换问题

1、bytes数组转换为16进制字符串

public static String bytesToHexString(byte[] src) {

StringBuilder stringBuilder = new StringBuilder("");

if (src == null || src.length <= 0) {

return null;

}

for (int i = 0; i < src.length; i++) {

int v = src[i] & 0xFF;

String hv = Integer.toHexString(v);

if (hv.length() < 2) {

stringBuilder.append(0);

}

stringBuilder.append(hv);

}

return stringBuilder.toString();

}

2、16进制字符串转化为Byte数组


public static byte[] hexStringToByte(String hex) {

  int len = (hex.length() / 2);

  byte[] result = new byte[len];

  char[] achar = hex.toCharArray();

  for (int i = 0; i < len; i++) {

    int pos = i * 2;

    result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));

  }

  return result;

    }

3、字符串转换为16进制字符串


    public static String stringToHexString(String strPart) { 

        StringBuffer hexString = new StringBuffer(); 

        for (int i = 0; i < strPart.length(); i++) { 

            int ch = (int) strPart.charAt(i); 

            String strHex = Integer.toHexString(ch); 

            hexString.append(strHex); 

        } 

        return hexString.toString(); 

    }

4、16进制字符串转化为字符串


public static String hexStringToString(String hex){ 

    StringBuilder sb = new StringBuilder(); 

    for( int i=0; i < hex.length()-1; i+=2 ){ 

        String output = hex.substring(i, (i + 2)); 

        int decimal = Integer.parseInt(output, 16); 

        sb.append((char)decimal); 

    } 

    return sb.toString(); 

    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,509评论 0 7
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,871评论 1 44
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,784评论 0 13
  • 大家好,我是吉叔。初入简书,求关注,求推荐,求打赏!上次出的是新娘的教程,这次肯定是新郎啦!!!哈哈哈虐狗了!!!...
    Js_吉叔阅读 5,668评论 0 10
  • 文/就这样我喜欢旅行,喜欢感受不同地区的人文风俗,喜欢吃不同地方的特色美食,喜欢了解不同地区的历史地理常识,喜欢旅...
    132db6d301e0阅读 1,535评论 0 1

友情链接更多精彩内容