2014-05-08 151 views
0

嗨我正在編寫一個測試程序來反轉字符串。當我使用toString()方法將字符數組轉換爲字符串時,我得到錯誤的輸出。當我嘗試使用for循環手動打印數組而不將其轉換爲字符串時,答案是正確的。我寫的代碼如下所示:給出錯誤輸出的tostring方法

import java.util.*; 
public class stringManip { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    String str = "This is a string"; 
    System.out.println("String=" +str); 
    //reverse(s); 

    char[] c = str.toCharArray(); 
    int left = 0; 
    int right = str.length() - 1; 
    for (int i = 0; i < (str.length())/2; i++) 
    { 
     char temp = c[left]; 
     c[left++] = c[right]; 
     c[right--] = temp; 
    } 
    System.out.print("Reverse="+c.toString()); 


    } 
} 

我應該得到我中輸入的字符串的反轉,而不是輸出我得到的是:

String=This is a string 

Reverse=[[email protected] 

有什麼用,當我做錯toString()方法?任何幫助表示讚賞。謝謝。

回答

2

數組不會覆蓋toString()方法。因此,您所看到的是默認的Object.toString()實現的輸出,其中包含對象的類型([C表示字符數組),後跟其hashCode。

爲了構建從字符數組字符串,使用

new String(c)