java中如何將byte[]裡面的資料轉換成16進位制字串

weixin_34067049發表於2015-08-25

 

原文連結: 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();
}

 

相關文章