2012-02-01 83 views
0

怎樣才能將數組列表中的值返回到屏幕上,例如: System.out.println輸出數組列表的內容

我正在考慮for循環,例如

for (String s : list) 
{ 
    System.out.println(s); 
} 

但它抱怨它不能將一個對象轉換爲字符串 - 我如何將它轉換爲字符串?

代碼:

public static void GetStatsProc(String operation) 
{ 
    try { 
     Process p=Runtime.getRuntime().exec(operation); 
     p.waitFor(); 
     BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line=reader.readLine(); 
     while(line!=null) 
     { 
      // Add all lines into an array 
      ArrayList list = new ArrayList(); 
      list.add(line); 
      System.out.println(line); 
      line=reader.readLine(); 
     } 

    } 
    catch(IOException e1) {} 
    catch(InterruptedException e2) {} 
} 
+3

您應該使用通用'ArrayList'(即'ArrayList ')。 – Bernard 2012-02-01 15:50:58

+1

沒有人指出你正在while循環的每次迭代中聲明一個新列表。 – Sign 2012-02-01 15:53:24

+0

爲什麼你的示例代碼不包含foreach循環?你想把它放在哪裏? – Jim 2012-02-01 15:54:20

回答

6

如果你的問題是與印刷在for循環中,那麼你的列表應聲明

ArrayList<String> list = new ArrayList<String>(); 

和for循環需要看起來像

for (String s : list) 
{ 
    System.out.println(s); 
} 
3

只需使用代碼:

System.out.println(list); 

打印清單。

+0

這隻能用,因爲ArrayList有一個重寫的toString()(實際上在AbstractCollection中),所以它除了調試外並不經常成爲你想要的東西。 – Jim 2012-02-01 15:51:57

+0

同意,但如果它是一個簡單的'列表'像OP的代碼那麼它會打印它很好。 – anubhava 2012-02-01 15:56:16

+0

我的評論更多的是後人​​,而不是真的針對你,因爲這個問題是一個新手Java程序員學習集合和泛型。其他一些新手可能會讀到這一點,我只是想向他們提供警告。 – Jim 2012-02-01 17:22:09

1

我想你錯過了:在你的代碼中,它應該是for(String s:list),那麼只要你有一個字符串列表就可以引用s。

1

請注意,每個對象都有一個toString()方法,但默認實現可能不會提供良好的結果。然而,在你的情況下,你正在處理字符串列表,因此你應該使用ArrayList<String>,正如其他人已經建議的那樣。

如果你要循環的條目,並提供自己的格式(如換行等),試試這個:

for (Object o : list) 
{ 
    System.out.println(o); 
} 

這將在內部調用String.valueOf(o)它將調用o.toString()"null"如果o返回是null