作者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
1F:推 superlubu:因为你是印 Array of character Object 而不是 string 06/05 10:39
2F:→ chiehjen:那请问有什麽方法可以印出来呢? 06/05 10:42
3F:→ chiehjen:还有为何用下面getMystring的方式就可以印出来呢? 06/05 10:44
4F:推 PsMonkey:你下面印得出来才奇怪... 06/05 11:00
5F:推 LZN:print(char[])会把char[]的字元印出,但是print(String)是 06/05 13:59
6F:→ LZN:会呼叫obj.toString() 06/05 14:01
7F:推 Puser:字串+阵列 会变 字串+阵列的参考数字(string) 拆开印就好 06/05 14:35
8F:→ chiehjen:了解了 谢谢各位 06/05 15:40
9F:推 maxi326:Java的string object不同於C\C++,去看一下文件就会了 06/05 23:58