1

这是一个非常简单的问题,但我需要另一只眼睛来查看我的代码:

String strtr = "iNo:";
char[] queryNo = strtr.toCharArray();
System.out.println(queryNo + " =this is no");

输出是:

[C@177b4d3 =this is no

这些角色是什么,你知道吗?

4

4 回答 4

7

这就是toString()数组的实现方式。

[C表示是一个字符数组,是它的177b4d3哈希码。

你可能想看看

System.out.println(Arrays.toString(queryNo) + " =this is no");

如果你想再次看到你的原始字符串,你需要这个:

System.out.println((new String(queryNo)) + " =this is no");
于 2012-11-30T08:29:33.877 回答
1

数组不会覆盖 toString(),它是从 Object.toString 继承的

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
于 2012-11-30T08:36:02.797 回答
1

您正在打印对象

queryno,就像queryno一个维度的字符数组一样,java是一种面向对象的语言,它以类的形式保存所有东西,它为您的数组提供类名,其中 表示总维度表示数组的字符类型Rest是的哈希目的。[C[ C

于 2012-11-30T08:42:11.607 回答
0

您正在尝试打印数组,这就是您出现乱码的原因。尝试使用Arrays.toString(queryNo),你会看到你所期望的。

于 2012-11-30T08:33:00.893 回答