发新话题

print()方法的 问题

public class Test
{
public static void main(String[] args)
{
String str = "world";
char[] ch = {'H','e','l','l','o'};
change(str,ch);
System.out.print(str + "and ");
System.out.println(ch);
}

public static void change(String str,char[] ch)
{
str = "Change";
ch[0] = 'C';
}
}

输出应该为 world and Cello 没有错

可是我将输出合为一句的时候,也就是System.out.println(str + " and " + ch)
输出为 world and [C@14318bb

为什么我将输出合并为一句之后输出的ch就是一个好像是地址呢!



编辑 回复 快速回复 TOP
D:\myjava>java Test
worldand Cello

验证过,没有问题。。
.不.要.轻.信.你.听.到.的.每.件.事..不.要.花.光.你.的.所.有..不.要.想.睡.多.久.就.睡.多.久.]无.论.何.时.说.“对.不.起”请.看.着.对.方.的.眼.睛。] 永.远.不要.忽.视.别.人.的.梦.想.。]. .永.远.不.要.以.貌.取.人..。慢.慢.地.说,但.要.迅.速.地.想。..总.有.一.种.平.凡.,让.我.们.泪.流.满.面..
编辑 回复 快速回复 TOP
ch是个数组,打印的应该是数组的地址
编辑 回复 快速回复 TOP
我调试了你的代码
输出的结果是worldand Cello
编辑 回复 快速回复 TOP
//此方法的两个不同参数
println
public void println(char[] x)打印字符数组,然后终止该行。此方法的行为就像先调用 print(char[]) 然后调用 println() 一样。

参数:
x - 要打印的字符数组。

--------------------------------------------------------------------------------

println
public void println(String x)打印 String,然后终止该行。此方法的行为就像先调用 print(String) 然后调用 println() 一样。

参数:
x - 要打印的 String。

==============
你第一种打印方式 独立打印出一个数组
第二种打印方式 因为前面的都是String对象,而后面一个是字符数组的引用,所以要调用ch.toString()方法.所以有上种结果
==============
编辑 回复 快速回复 TOP
init:
deps-jar:
compile-single:
run-single:
worldand Cello
BUILD SUCCESSFUL (total time: 0 seconds)
测试结果如上
http://hi.baidu.com/yangwen_yw
编辑 回复 快速回复 TOP
init:
deps-jar:
Compiling 1 source file to F:\Projects\CoreExample\build\classes
compile-single:
run-single:
worldand Cello
worldand[C@de6ced
BUILD SUCCESSFUL (total time: 0 seconds)
这个是添加
System.out.println(str+"and"+ch);后的运行结果
http://hi.baidu.com/yangwen_yw
编辑 回复 快速回复 TOP
原因解析:
分析JAVA_6_API:
void println(String x) 打印 String,然后终止该行。
void println(char[] x) 打印字符数组,然后终止该行。
void print(String s) 打印字符串。
void print(char[] s) 打印字符数组。

由于在开始的调用中print(String s)和println(char[] c)两个方法的调用是分开的,并且所以能够正常使用。
但是当你试图使用 System.out.println(str+"and"+ch); 来显示出str 和 ch两个所代表的字符串时 会由于使用println(String s)来进行默认的调用。而此时的ch被解析为数组的地址,故出现不正常显示。
http://hi.baidu.com/yangwen_yw
编辑 回复 快速回复 TOP
你怎么测试的额~~
编辑 回复 快速回复 TOP
发新话题