作者walm20 (我要买车啦)
看板java
标题Re: [问题] print char[]问题
时间Sat Mar 10 11:32:36 2007
※ 引述《moonforget (等等等等等等等等)》之铭言:
: ※ 引述《walm20 (我要买车啦)》之铭言:
: : 课本 str1[]={'M','y',' ','S','t','r','i','n','g'};
: : 执行结果
: : str1[]=My String
: : 为什麽我这里是出现奇怪的数字
: 这是有一些型态的问题
: 如:
: String string = "happy";
: int num = 3 + 4;
: System.out.println(string + num);
: System.out.println(string + 3 + 4);
: 显示:
: happy7
: happy34
: 这样看出一些东西麽?
: 就是个别将每项都提升成字串
: 但int为基本型态并非物件
: 而你的问题应该是个别提升成了物件,因为String也是一个物件,而char[]也是物件
: 如果你将你的程式写成:
: String string = "str = ";
: char[] charArray = { 'H', 'a', 'p', 'p', 'y'};
: System.out.print(string);//用print(String s)
: System.out.print(charArray);//用print(char[] c)
: 显示:
: str = Happy
: 就和下列程式不同
: System.out.print(string + charArray);//用print(Object obj)
: 显示:
: str = [C@c17164
: (显示charArray的记忆体位址)
: 如有错误请指教.....我还是个嫩新手....谢谢
: By Java新手
不知道你的意思是不是这样
我归纳一下(在笔记本上TRY的)
print会把传入的参数每个形态都调整成同样型态
依照原本我的程式码
如果改成
System.out.print("str1=");
System.out.println(str1);
这样就是
str1=My String
但是合起来System.out.println("str1="+str1);
两个type不同
就是上面说的
会调整str1的型态
从 char [] = > String
她就只认得str1的起始位置
所以就输出str1的起始位置
不知道我想的是否正确
请指教(抱歉 占用这麽多版面跟文章)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.169.123.242
※ 编辑: walm20 来自: 218.169.123.242 (03/10 11:33)