Boh*_*ian 198
怎么样Arrays.toString(byteArray)?
这是一些可编译的代码:
byte[] byteArray = new byte[] { -1, -128, 1, 127 };
System.out.println(Arrays.toString(byteArray));
Run Code Online (Sandbox Code Playgroud)
输出:
[-1, -128, 1, 127]
Run Code Online (Sandbox Code Playgroud)
为什么重新发明轮子......
Pet*_*rey 22
如果要将字节打印为字符,可以使用String构造函数.
byte[] bytes = new byte[] { -1, -128, 1, 127 };
System.out.println(new String(bytes, 0));
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 18
好吧,如果你很高兴用十进制打印它,你可以通过屏蔽使它成为积极的:
int positive = bytes[i] & 0xff;
Run Code Online (Sandbox Code Playgroud)
如果你打印出一个哈希值,那么使用十六进制会更常规.Stack Overflow上有很多其他问题,用于将二进制数据转换为Java中的十六进制字符串.
byte[] buff = {1, -2, 5, 66};
for(byte c : buff) {
System.out.format("%d ", c);
}
System.out.println();
Run Code Online (Sandbox Code Playgroud)
得到你
1 -2 5 66
Run Code Online (Sandbox Code Playgroud)
试试吧:
public static String print(byte[] bytes) {
StringBuilder sb = new StringBuilder();
sb.append("[ ");
for (byte b : bytes) {
sb.append(String.format("0x%02X ", b));
}
sb.append("]");
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
例:
public static void main(String []args){
byte[] bytes = new byte[] {
(byte) 0x01, (byte) 0xFF, (byte) 0x2E, (byte) 0x6E, (byte) 0x30
};
System.out.println("bytes = " + print(bytes));
}
Run Code Online (Sandbox Code Playgroud)
输出: bytes = [ 0x01 0xFF 0x2E 0x6E 0x30 ]