如图java中用char数组接受一个方法传回的数据,在不同的地方打印出来的一个是值,一个是内存地址,为啥?

如图,我是一个初学者,在写一个小游戏的时候发现一个问题,char[] shc = Generate(num); 这只是接收一个方法传回的值,然后我在17行打印shc输出的是对应的值,但是我想改变下游戏规则,我想在用户退出的时候再输出这个shc的值,就是在22行这里输出,可是在22行这里打印出来的是内存地址,具体请看图!求大神解答,已经用过ToString了还是地址!

不是你输出字符数组shc的位置不同得到的结果不同,而是因为你输出语句println(shc);和println("此次的字符为"+shc+"欢迎下次光临");在javaJDK内部分别调用了不同的方法,分别是println(char[]);和println(String);(因为"此次的字符为"是字符串,所以它调用的是println(String)方法),它们的参数是不同的,第一个是打印数组元素,第二个是打印数组的地址.
解决办法是把第二个println("此次的字符为"+shc+"欢迎下次光临");改成println("此次的字符为"+String.valueOf(shc)+"欢迎下次光临");就行了.
温馨提示:答案为网友推荐,仅供参考
相似回答