java String.valueOf问题
我写了这段代码:java String.valueOf问题,java,string,value-of,Java,String,Value Of,我写了这段代码: byte[] test = {-51}; byte[] test2 = {-51}; byte[] test3 = {-51}; System.out.println(String.valueOf(test)); System.out.println(String.valueOf(test2)); System.out.println(String.valueOf(test3)); 我得到了一个不同的结果: [B@9304b1 [B@190d11 [B@a90653 为什么
byte[] test = {-51};
byte[] test2 = {-51};
byte[] test3 = {-51};
System.out.println(String.valueOf(test));
System.out.println(String.valueOf(test2));
System.out.println(String.valueOf(test3));
我得到了一个不同的结果:
[B@9304b1
[B@190d11
[B@a90653
为什么呢?你看到的数字是相同的 要查看数组的内容,请使用:
你看到的数字是最新的 要查看数组的内容,请使用:
toString pf any数组不使用数组中的值来创建可用于该字符串的字符串toString pf any数组不使用数组中的值来创建可用于该字符串的字符串
ValueOf()
只调用给定对象的toString()
。如果要打印数组的内容,请改用Arrays.toString()
。ValueOf()
只需调用给定对象的toString()
。如果要打印数组的内容,请改用Arrays.toString()
。因为字节数组没有String.valueOf
,当您给它byte[]
时,它使用String.valueOf(Object obj)
因为字节数组没有String.valueOf
,当您给它byte[]
,它使用字符串。valueOf(Object obj)
没有byte[]参数,因此它将被处理为对象
,并且将调用toString()
方法,因为数组未实现此方法,因此将在数组中处理,其结果因每个实例而异
如果要将字节[]
转换为字符串,请使用构造函数或
结果:
Í
Í
Í
[-51]
[-51]
[-51]
如果要查看数组的内容,请使用
结果:
Í
Í
Í
[-51]
[-51]
[-51]
没有byte[]参数,因此它将作为Object
处理,并且将调用toString()
方法,因为数组没有实现此方法,因此将在数组中处理,并且其结果因每个实例而异
如果要将字节[]
转换为字符串,请使用构造函数或
结果:
Í
Í
Í
[-51]
[-51]
[-51]
如果要查看数组的内容,请使用
结果:
Í
Í
Í
[-51]
[-51]
[-51]
您正在询问数组的值。您可能需要的是String.valueOf(test[0]),您需要的是数组的值。您可能需要的是String.valueOf(测试[0])