我是Java的编程和运行代码的初学者
String demo = "This is first string";
char ch[]= demo.toCharArray();
System.out.println(ch);
Run Code Online (Sandbox Code Playgroud)
输出:
This is first string
Run Code Online (Sandbox Code Playgroud)
而,
System.out.println("result is "+ch);
Run Code Online (Sandbox Code Playgroud)
输出: - (显示与对象内存相关的哈希码)
result is: someHashcode
Run Code Online (Sandbox Code Playgroud)
1)为什么我们两个都有不同的输出(上面提到的代码)?实际发生在这里的事情.
而另一方面
int num[]={1,2,3,4};
System.out.println(num);
Run Code Online (Sandbox Code Playgroud)
输出: -
somehashcode
Run Code Online (Sandbox Code Playgroud)
2)这不像char数组一样工作(如上面提到的第一个代码)并将输出作为哈希码,为什么?
PrintStream有重载println的字符数组方法.将字符数组传递给它时,它会从中打印字符,就像它是一个字符串一样.
Hovewer当你传递其他类型的数组时,它将它视为对象 - 它的toString()表示被打印出来.
在这个例子中:
System.out.println("result is "+ch);
Run Code Online (Sandbox Code Playgroud)
您将数组附加到字符串文字,因此toString形式ch将附加到文字,这就是为什么您没有得到预期的结果.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |