Re: [問題] print char[]問題
※ 引述《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)
討論串 (同標題文章)