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

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

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

输出是:

 [C@177b4d3 =this is no 

这些人物是什么, 你有什么想法吗?

这就是为数组实现toString()方法。

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

你可能想看一下

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

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

 System.out.println((new String(queryNo)) + " =this is no"); 

数组不会覆盖toString(),它从Object.toStringinheritance为

 public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 

你正在打印对象

queryno ,因为queryno是on维度的字符数组,java是面向对象的语言,它以的forms保存每个东西,它给出了类名 [C到你的数组,其中[ 表示总维度C 表示数组的字符类型Rest是对象的哈希码

你正在尝试打印arrays ,这就是你得到胡言乱语的原因。 尝试使用Arrays.toString(queryNo) ,您将看到您的期望。