byte 数组转化成 16 进制字符串实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/** 字节数据转字符串专用集合 */
private static final char[] HEX_CHAR= {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

/**
* byte 数组转化成 16 进制字符串
* @author 张振伟 (2013-7-24)
* @param data
* @return
*/
public static String byteArrayToHexString(byte[] data){
StringBuilder stringBuilder= new StringBuilder();
for (int i=0; i<data.length; i++){
// 取出字节的高四位 作为索引得到相应的十六进制标识符 注意无符号右移
stringBuilder.append(HEX_CHAR[(data[i] & 0xf0)>>> 4]);
// 取出字节的低四位 作为索引得到相应的十六进制标识符
stringBuilder.append(HEX_CHAR[(data[i] & 0x0f)]);
}
return stringBuilder.toString();
}

亦可使用:org.apache.commons.codec.binary.Hex 的方法