美文网首页
java byte数组与16进制字符串、字符串转换

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

作者: IT和金融 | 来源:发表于2018-04-17 23:18 被阅读0次

    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(); 
    
        }
    

    相关文章

      网友评论

          本文标题:java byte数组与16进制字符串、字符串转换

          本文链接:https://www.haomeiwen.com/subject/pddmkftx.html