字符串到char数组,显示愚蠢的字符

时间:2012-11-30 08:28:18

标签: java arrays string char to-char

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

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

,输出为:

[C@177b4d3 =this is no

这些角色是什么,你有什么想法吗?

4 个答案:

答案 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),您会看到您的期望。