Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将bytearray输出转换为字符串而不改变值_Java_Hash_Bytearray - Fatal编程技术网

在java中将bytearray输出转换为字符串而不改变值

在java中将bytearray输出转换为字符串而不改变值,java,hash,bytearray,Java,Hash,Bytearray,我在java中有一个名为byteval的byte[]数组,如果我使用System.out.println(byteval),我可以读取:D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7[B@40d150e0 现在我需要这个我在那里读到的字符串,但是如果我尝试用Byte.toString或一个新的字符串构造函数来转换它,它的值是不一样的,大多数都是一些数字 那么,如何将byte[]数组作为一个名为strval的字符串,同时切断[B@40d150e0? 现在:Syste

我在java中有一个名为byteval的byte[]数组,如果我使用System.out.println(byteval),我可以读取:D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7[B@40d150e0

现在我需要这个我在那里读到的字符串,但是如果我尝试用Byte.toString或一个新的字符串构造函数来转换它,它的值是不一样的,大多数都是一些数字

那么,如何将byte[]数组作为一个名为strval的字符串,同时切断[B@40d150e0?

现在:System.out.println(byteval)>>D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7[B@40d150e0

目标:System.out.println(strval)>>D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7

非常感谢! 丹尼

编辑:我的工作解决方案:

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
谢谢所有的回答者。

就这么做吧

System.out.println(byteval.toString())
而不是

System.out.println(byteval)
这将删除结尾部分(实际上这只是引用对象的地址)

尝试以下操作:

String str= new String(byteval, "ISO-8859-1");
System.out.println(str);

我假设您使用的是
System.out.println(array[0]);
并且不仅仅是试图输出arrayNo Mr D,我还使用hole数组进行sysout,而不仅仅是一个索引。这向我显示了值,我需要的是什么,但我无法将其作为string。以及
array[0]的值==D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7
System.out.println(byteval)
打印出
[B@40d150e0
必须在其他地方打印D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7。删除
系统.out.println(byteval)
并查看发生了什么。Mr D,在数组中[0]是D3E1547C254FF7CEC8DBCEF262B5CF10EC079C7-45。但它对我没有多大帮助,因为它甚至是一个字节,我需要在字符串变量中使用它。如何在字符串中获取数组[0]?字符串string strval=array[0]。toString()不可用,string.ValueOf(array[0])和新字符串(array[0],'UTF-8')我不认为他指的是byteval实际上是他的变量名他在开头说:“我有一个名为byteval的byte[]数组”你们两行都有相同的输出,地址在末尾。这输出一些加密符号:Óát|%O÷ÎÈÛÎò&+\ñy|