byte[]字节数组转hex16进制字符串的三种方法

方法1

这种方法代码量是最少的,推荐

private String bytesToHex(byte[] bytes) {
    String hex = new BigInteger(1, bytes).toString(16);
}

方法2

private String bytesToHex(byte[] bytes) {
    StringBuilder sb = new StringBuilder();
    for (byte b : bytes) {
        sb.append(String.format("%02x", b));
    }
    return sb.toString();
}

方法3

public String bytesToHex(byte[] bytes) {
   char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'};  
   // 一个字节对应两个16进制数,所以长度为字节数组乘2
   char[] resultCharArray = new char[bytes.length * 2];  
   int index = 0; 
   for (byte b : bytes) {  
      resultCharArray[index++] = hexDigits[b>>>4 & 0xf];  
      resultCharArray[index++] = hexDigits[b & 0xf];  
   }  
   return new String(resultCharArray); 
}
posted @ 2019-03-25 21:21  野猿新一  阅读(207)  评论(0编辑  收藏  举报