看板 java 關於我們 聯絡資訊
想請問一下 為何我在 Mystring裡面列印 s 這個array 印出來是亂碼,而不是 My sting呢? 但是如果單獨列印s[0]卻可以印出 M這個字母 謝謝 public class DeclareString { public static void main(String arg[]) { MyString str1 = new MyString(); //建立MyString物件 char c[] = {'M','y',' ','s','t','r','i','n','g'}; str1.setMyString(c); //呼叫str1的setMyString方法,設定字串值 System.out.print("string: "); System.out.println(str1.getMyString()); //呼叫getMyString方法,並輸出回傳值 System.out.println("length: "+str1.length); //輸出字串長度 } } class MyString //定義類別 { private char s[] = new char[20]; //定義屬性 public int length; public void setMyString(char input[]) //設定字串值 { System.arraycopy(input, 0, s,0, input.length); length = input.length; //取得傳入字串的長度 System.out.println("test1:"+s); } public char[] getMyString() //取得字串內容 { return s; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.31.73
superlubu:因為你是印 Array of character Object 而不是 string 06/05 10:39
chiehjen:那請問有什麼方法可以印出來呢? 06/05 10:42
chiehjen:還有為何用下面getMystring的方式就可以印出來呢? 06/05 10:44
PsMonkey:你下面印得出來才奇怪... 06/05 11:00
LZN:print(char[])會把char[]的字元印出,但是print(String)是 06/05 13:59
LZN:會呼叫obj.toString() 06/05 14:01
Puser:字串+陣列 會變 字串+陣列的參考數字(string) 拆開印就好 06/05 14:35
chiehjen:瞭解了 謝謝各位 06/05 15:40
maxi326:Java的string object不同於C\C++,去看一下文件就會了 06/05 23:58