0

我正在获取字节数组值(来自服务器),如下所示

字节[] 字节=9D 37 7B 10 CE 77 8C 49 38 B3 C7 E2 C6 3A 22 9A ;

需要按原样将其转换为字符串

我试过下面的代码

字符串项=新字符串(字节)

但我得到的价值是[B@40e5d338

我也尝试使用编码技术

字符串项=新字符串(字节,“UTF-8”)

4

1 回答 1

2

将 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();
}
于 2013-09-11T11:27:09.963 回答