我在 java 中有一个名为 byteval 的 byte[] 数组,如果我执行 System.out.println(byteval),我可以读取:d3e1547c254ff7cec8dbcef2262b5cf10ec079c7[B@40d150e0
现在我需要这个我在那里读到的字符串,但是如果我尝试用 Byte.toString 或新的字符串构造函数来转换它,值就不一样了,大多数都是一些数字。
那么如何将 byte[] 数组作为一个名为 strval 的字符串获取,同时切断 [B@40d150e0?
现在: System.out.println(byteval)>> d3e1547c254ff7cec8dbcef2262b5cf10ec079c7[B@40d150e0
目标: System.out.println(strval)>> d3e1547c254ff7cec8dbcef2262b5cf10ec079c7
非常感谢!丹尼
编辑:为我工作的解决方案:
byte[] byteval = getValue();
// Here System.out.println(byteval) is
// d3e1547c254ff7cec8dbcef2262b5cf10ec079c7[B@40d150e0
BigInteger bi = new BigInteger(1, byteval);
String strval = bi.toString(16);
if ((strval.length() % 2) != 0) {
strval = "0" + strval;
}
System.out.println(strval);
// Here the String output is
// d3e1547c254ff7cec8dbcef2262b5cf10ec079c7
感谢所有回答者。