我正在获取字节数组值(来自服务器),如下所示
字节[] 字节=9D 37 7B 10 CE 77 8C 49 38 B3 C7 E2 C6 3A 22 9A ;
需要按原样将其转换为字符串
我试过下面的代码
字符串项=新字符串(字节)
但我得到的价值是[B@40e5d338
我也尝试使用编码技术
字符串项=新字符串(字节,“UTF-8”)
将 byte[] 作为参数的 String 构造函数通过基于编码将字节转换为字符来创建字符串。如果你想要一个包含
9D 37 7B 10 CE 77 8C 49 38 B3 C7 E2 C6 3A 22 9A
您必须编写一种方法来执行此操作(据我所知,java 库中没有)。所以基本上:
public String toHexString(byte[] arr) {
if (arr == null || arr.length == 0) {
return "";
}
StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(arr[0] & 0xff));
for (int i = 1; i < arr.length; i++) {
sb.append(' ').append(Integer.toHexString(arr[i] & 0xff));
}
return sb.toString();
}