Discussion:
[問題] print char[]問題
(时间太久无法回复)
foolish
2007-03-09 08:23:08 UTC
Permalink
※ 引述《qrtt1 (愚人)》之銘言:
: 請問您對這結果有什麼地方不滿意 ?
課本 str1[]={'M','y',' ','S','t','r','i','n','g'};
執行結果
str1[]=My String
為什麼我這裡是出現奇怪的數字
請回答下面這一句是什麼意思:

System.out.println("str1[]="+str1);
--
※ Origin: SayYA 資訊站 <bbs.sayya.org> 
◆ From: 211.21.79.162
foolish
2007-03-10 03:58:07 UTC
Permalink
不知道你的意思是不是這樣
我歸納一下(在筆記本上TRY的)
print會把傳入的參數每個形態都調整成同樣型態
依照原本我的程式碼
如果改成
System.out.print("str1=");
System.out.println(str1);
這樣就是
str1=My String
但是合起來System.out.println("str1="+str1);
兩個type不同
就是上面說的
會調整str1的型態
[-----------------]

字串的「加法」會結合 2 個字串
如果運算的東西不是字串時,會呼叫 toString() 方法

char[] 是一個物件,所以他當然會有 toString()
這是來自物件之母/父的 Object 所擁有的 toString()
從 char [] = > String
至於第 2 行的
str1=My String 會成功,並不是您真的印了「字串」

http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintStream.html
#println(char[])

你只是呼叫了其中一個 print 可以填入 char[] 的方法罷了
她就只認得str1的起始位置
所以就輸出str1的起始位置
依之前的文章看,也許您學習過 c 語言
所以要提醒您在 java 中,
字串是由 String 所建立,
或是以 "" 包起來的才叫字串

不再是以一串 char[] 並含有 '\0' 者為字串
不知道我想的是否正確
請指教(抱歉 佔用這麼多版面跟文章)
有問題就問,
您也沒有使用不禮貌的問法,
不用覺得抱歉 :)
--
※ Origin: SayYA 資訊站 <bbs.sayya.org> 
◆ From: 218-161-127-199.dynamic.hinet.net

继续阅读narkive:
Loading...