问题描述
- 字符数组输出字符还是地址的问题
-
为什么char[] c=new char[]{‘a’,’b’,’c’};System.out.println(c);输出的不是地址,而是abc
解决方案
这是println方法重载。java打印输出System.out.println会调用输入参数的toString方法,输出内容是toString方法的返回值
println的参数分基本类型,String和Object类型
解决方案二:
System.out 是一个 PrintStream 对象,你看看文档,有 print(char[]) 和 println(char[]) 方法,但没有 print(int[]) 或者 println(int[]) 方法。
解决方案三:
字符数组的输出问题
解决方案四:
基本数据类型分 和 已用的类型是不一样的!
解决方案五:
基本数据类型分 和 已用的类型是不一样的!
解决方案六:
println
public void println(char[] x)
打印字符数组,然后终止该行。此方法的行为就像先调用 print(char[]) 然后调用 println() 一样。
参数:
x - 要打印的字符数组。
print
public void print(char[] s)
打印字符数组。按照平台的默认字符编码将字符转换为字节,并完全以 write(int) 方法的方式写入这些字节。
参数:
s - 要打印的字符数组
抛出:
NullPointerException - 如果 s 为 null
解决方案七:
这很正常,你输出&c就会输出第一个元素的地址了。
解决方案八:
我觉得问题就在于system.out.println(c); println方法输出的是字符。println方法输出字符数组的时候默认调用了toString方法,将整个数组的内容进行了输出。
解决方案九:
这个是jdk实现的问题,数组的toString方法都是打印地址,jdk特殊处理了字符数组而已