作者LPH66 (ha(ruhi|yate)ism)
看板java
标题Re: [问题] print char[]问题
时间Sat Mar 10 12:00:39 2007
※ 引述《walm20 (我要买车啦)》之铭言:
: 不知道你的意思是不是这样
: 我归纳一下(在笔记本上TRY的)
: print会把传入的参数每个形态都调整成同样型态
应该说 它看到那个+是字串的+(连接)
就去呼叫 str1.toString() 把阵列变成字串
然後把那个字串换上去接起来
所以 "str1="+str1 其实是 "str1="+(str1.toString())
: 依照原本我的程式码
: 如果改成
: System.out.print("str1=");
: System.out.println(str1);
: 这样就是
: str1=My String
这只是刚好
System.out 这个 PrintStream 物件有一个 println 是收一个 char[] 的
因此 System.out.println(str1); 就会去呼叫它
它的功能是把那个字元阵列的内容像上面那样印出来
这样而已
所以如果你丢一个byte[]进println 它照样印出个像是 [B@35ce36 这样的字串
(即使你是宣告成 byte x[]={49,65,20,90}; 这样)
: 但是合起来System.out.println("str1="+str1);
: 两个type不同
: 就是上面说的
: 会调整str1的型态
: 从 char [] = > String
: 她就只认得str1的起始位置
: 所以就输出str1的起始位置
如上所说 它是呼叫 str1.toString() 把它变成字串
至於变成怎样的字串 那是这个 toString() 在管的
而它正好是取这阵列的位置变成字串丢回来
: 不知道我想的是否正确
: 请指教(抱歉 占用这麽多版面跟文章)
--
実琴:「
河野!你真的就这样被
物质慾望给吸引过去了吗?!」
亨:「只要
穿着女装摆出亲切的样子,所有必要花费就能
全免,似乎一点都不坏啊。」
実琴:「难道你没有
男人的尊严了吗?!」
亨:(断然道)「
没有。在
节衣缩食且
生活吃紧的
学生面前,
没有那种东西。」
--プリンセス・プリンセス 第二话
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 192.192.197.115