2014-02-13 64 views
-1

所以該方法被稱爲:返回多個值(字符串和數組)

private void print() 
{ 
    System.out.println("The list of Devices is:"); 
    for(int i = 0; i < numDevices; i++) 
    { 
     System.out.println(list[i].toString()); 
    } 
} 

當它到達toString方法帶來了在這裏

public String toString() 
{ 
    String temp = name + ": " + readings[0]; 
    return temp; 
} 

我的問題是,當我打電話在方法打印它應該出所有的數據值內的讀數,而我可以只返回一個數據值。任何幫助將不勝感激,如果需要更多信息,讓我知道這是3個文件中的兩個。

我的輸出:

The list of Devices is: 

Speedometer: 3 

Alitimeter: 1 

有輸出

The list of Devices is: 

Speedometer: 3,39.7,93.2,193.2,0.0,0.0 

Altimeter: 1,422.6,98.7,340.5 
+0

你應該看看這個:http://stackoverflow.com/questions/2832472/how-to-return-2-values-from-a-java-function它看起來類似於你的問題。 – BitNinja

+0

是的,它看起來非常相似,問題是我不能創建另一個類。另外,沒有新的對象可以在tostring所在的類中創建。 – user3304256

回答

2
public String toString() { 
     String str = name + ": "; 
     for (int i = 0; i < readings.length; i++) { 
      if (i < readings.length - 1) { 
       str += readings[i] + ", "; 
      } else { 
       str += readings[i]; 
      } 
     } 
     return str; 
    } 

嘗試更換您的toString方法是這樣的。

0

您有線

String temp = name + ": " + readings[0]; 

的「[0]」表示僅做讀數數組中的第一項。您需要找到一種方法來完成陣列中的所有項目。例如,如果有數組中的3項,你可以做

String temp = name + ": " + readings[0] + "," + readings[1] + "," + readings[2]; 

當然,因爲數組中的項目數量可以改變,你會希望把它變成一個循環。德羅巴的例子就是這樣。

祝你好運!