How to Convert byte array to hexString in java?
本问题已经有最佳答案,请猛点这里访问。
我有字节数组,它由十六进制值组成,如
但我想把它们列在
1 2 3 4 5 6 7 |
您需要查看string.format()和格式化程序规范。
例如
遍历数组并将每个
怎么样:
1 2 3 4 5 6 7 8 9 10 11 | public static String bytesToHex(byte[] bytes) { final char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char[] hexChars = new char[bytes.length * 2]; int v; for ( int j = 0; j < bytes.length; j++ ) { v = bytes[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; } return new String(hexChars); } |
来源
此方法应该为您这样做..将字节数组作为参数传入以返回十六进制字符串…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private static String convertToHexString(byte[] data) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < data.length; i++) { int halfbyte = (data[i] >>> 4) & 0x0F; int two_halfs = 0; do { if ((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char) ('0' + halfbyte)); else buf.append((char) ('a' + (halfbyte - 10))); halfbyte = data[i] & 0x0F; } while(two_halfs++ < 1); } return buf.toString(); } |
希望有帮助……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.HashMap; public class NumUtil { private static HashMap<Byte,char[]>byteToHex=new HashMap<Byte, char[]>(); static { for(int i=0;i<16;++i) byteToHex.put((byte)i, new char[]{'0',Integer.toHexString(i).charAt(0)}); for(int i=16;i<256;++i) byteToHex.put((byte)i, Integer.toHexString(i).toCharArray()); } public static String toHexString(byte[]bytes) { StringBuilder stringBuilder = new StringBuilder(bytes.length*2); for(byte b:bytes) stringBuilder.append(byteToHex.get(b)); return stringBuilder.toString(); } } |
如果这个数组是4个字节长,您可以连接字节并使用integer.toString(int,int)方法。
1 2 3 4 5 6 7 |
参见
您可以使用