字符串到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)
,您将看到您的期望。