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