作者chiehjen (天之驕子)
看板java
標題[問題] 請問一下為何列印出來是亂碼呢?
時間Fri Jun 5 10:26:21 2009
想請問一下 為何我在 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