这是一个非常简单的问题,但我需要另一只眼睛看看我的代码:
String strtr = "iNo:";
char[] queryNo = strtr.toCharArray();
System.out.println(queryNo + " =this is no");
,输出为:
[C@177b4d3 =this is no
这些角色是什么,你有什么想法吗??
答案 0 :(得分:7)
这就是为数组实现toString()
的方式。
[C
表示这是一个char数组,177b4d3
是它的哈希码。
您可能需要查看
System.out.println(Arrays.toString(queryNo) + " =this is no");
如果您想再次查看原始字符串,则需要:
System.out.println((new String(queryNo)) + " =this is no");
答案 1 :(得分:1)
数组不覆盖toString(),它从Object.toString继承为
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
答案 2 :(得分:1)
您正在打印对象
queryno
,因为queryno
是on维度的字符数组,java是面向对象的语言,它以类的形式保存每个东西,它提供类名 [C
到您的数组[
表示总维度,C
表示数组的字符类型,休息是对象的哈希码。
答案 3 :(得分:0)
您正在尝试打印数组,这就是您获得乱码的原因。尝试使用Arrays.toString(queryNo)
,您会看到您的期望。