java中如何将byte[]里面的数据转换成16进制字符串

时间:2021-12-19 21:00:00

原文链接: http://zhidao.baidu.com/link?url=RmLDjr4PtP_oUE5J2pKNZSvlHt1K7HcCh4-03Y7VkXYhJ0kawg01CtKHZc2uBVxQsHgzl8pp60WBYULP6K15K_

以下3个方法能将byte[]转化成16进制字符串,可以任选一个
/* *
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符串。
* @param src byte[] data
* @return hex string
*/ 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();
} public static String bytes2HexString(byte[] b) {
  String ret = "";
  for (int i = 0; i < b.length; i++) {
    String hex = Integer.toHexString(b[i] & 0xFF);
    if (hex.length() == 1) {
      hex = "0" + hex;
    }
    ret += hex;
  }
  return ret;
} public static String toHex(byte[] buffer) {
  StringBuffer sb = new StringBuffer(buffer.length * 2);
  for (int i = 0; i < buffer.length; i++) {
    sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
    sb.append(Character.forDigit(buffer[i] & 15, 16));
  }
  return sb.toString();
}