2014-09-04 51 views
-2

我編寫了一個樣本Java程序:toCharArray()方法顯示錯誤

String str="JAVA is awesome"; 
char[] ch=str.toCharArray(); 
System.out.println("The value of ch is : " + ch); 

是表示用一些隨機的ASCII值一個意想不到的結果......這是什麼問題?

+0

這可能是打印'ch'對象的地址。你期望它打印什麼? – 2014-09-04 15:06:42

+0

你看到的東西看起來像'[C @ 48a2e6'。這是'ch'(它是'[C'或字符數組],後面跟着@符號和數組哈希碼的十六進制字符串表示的組合。 – JonK 2014-09-04 15:08:53

+0

僅供參考:在本例中,您不需要將ch初始化爲新的char [n],因此您也不需要n。 char [] ch = str.toCharArray();很好:) – ne1410s 2014-09-04 15:09:41

回答

1

你真的像說的javadoc String#toCharArray()不需要這一步char ch[]=new char[n];

- 返回一個新分配的字符數組,其長度爲該字符串的長度及其內容被初始化爲包含由該字符串表示的字符序列。

而在此行System.out.println("The value of ch is : " + ch);

只要返回一個由其中的對象是一個實例,該符號字符'@」的類的名稱的字符串,並且散列碼的無符號十六進制表示法的對象。下面

所以這幾行應該做你想達到什麼

String str="JAVA is awesome"; 
char[] ch = str.toCharArray(); 
System.out.println(java.util.Arrays.toString(ch)); 

Arrays.toString(char[] ch) - 返回指定數組內容的字符串表示。字符串表示由數組元素的列表組成,方括號(「[]」)。相鄰元素由字符「,」分隔(逗號後跟空格)。

0

此行

System.out.println("The value of ch is : " + ch); 

會打印出

The value of ch is : //And the hash code of your array, which is just an object in Java 

如果你想有意義的數據,使用Arrays.toString()重載的方法...

System.out.println("The value of ch is : " + Arrays.toString(ch)); 

在的Javadoc看看對於Array.toString()方法來看看它在什麼時候可能會有用。

+0

是啊..但是當我使用Arrays.string錯誤來: 線程「主」的異常java.lang.Error:未解決的編譯問題: \t String類型的方法toString()不適用於參數(char [ ]) \t at spidy.test.main(test.java:15) – Spider 2014-09-04 15:13:44

+0

我希望你的意思是'Arrays.toString(ch)'..什麼錯誤來了?編譯或運行時?提供一些信息... – Kon 2014-09-04 15:14:28

0

此代碼:

System.out.println("The value of ch is : " + ch); 

等效於此

System.out.println("The value of ch is : " + ch.toString()); 

作爲ch是它繼承Object.toString()toString()方法的陣列對象。這返回一個由對象爲實例類的名稱,符號字符「@」和對象的哈希代碼的無符號十六進制表示組成的字符串

嘗試使用下列內容之一的輸出,你需要:

System.out.println("The value of ch is : " + new String(ch)); //prints ch array as String 
System.out.println("The value of ch is : " + String.valueOf(ch)); //prints ch array as String 
System.out.println("The value of ch is : " + Arrays.toString(ch)); //prints every letter separately 
+0

謝謝..我知道了..非常感謝你 – Spider 2014-09-04 15:18:55

+0

@RushabhWadkar很高興我能提供幫助。如果你發現答案有幫助,它解決了你的問題,你可以隨時接受它。 – 2014-09-04 15:21:03