在Java中从字符串中提取字符

时间:2014-11-21 20:44:16

标签: java string char

我是Java的编程和运行代码的初学者

 String demo = "This is first string";
 char ch[]= demo.toCharArray();
 System.out.println(ch);

输出:

 This is first string

而,

 System.out.println("result is "+ch);

输出: - (显示与对象内存相关的哈希码)

 result is: someHashcode

1)为什么我们两个都有不同的输出(上面提到的代码)?实际发生在这里的事情。

另一方面

 int num[]={1,2,3,4};
 System.out.println(num);

输出: -

 somehashcode

2)这在char数组的情况下不起作用(如上面提到的第一个代码),并将输出作为哈希码,为什么?

1 个答案:

答案 0 :(得分:5)

PrintStream为字符数组重载println方法。将字符数组传递给它时,它会从中打印字符,就像它是一个字符串一样。

当你传递其他类型的数组时,它将它视为对象 - 它的toString()表示被打印出来。

在这个例子中:

System.out.println("result is "+ch);

您要将数组附加到字符串文字,因此toString ch形式的{{1}}将附加到文字中,这就是您无法获得预期结果的原因。

相关问题