2014-09-28 133 views
0

我有一個類用於讀取文件(.txt包含3行180個數字)的以下代碼,它運行完美。問題是,你可能會看到我只是返回數組「data1」,我想返回3個數組(data1,data2,data3)和3個整數(total1,total2,total3)到同一個方法中。任何想法我怎麼能做到這一點?非常感謝 ;)!如何將多個變量返回到Java中的方法?

public int [] OpenFile() throws IOException 
{ 
    FileReader reader = new FileReader(path); 
    BufferedReader textReader = new BufferedReader(reader); 

    int numberOfTimeZones = 3; 
    int[] data1 = new int[180]; 
    int[] data2 = new int[180]; 
    int[] data3 = new int[180]; 
    int total1 = 0; 
    int total2 = 0; 
    int total3 = 0; 

    for (int i = 0; i < numberOfTimeZones; i++){ 
     if (i == 0) 
     { 
      String firstTimeZone = textReader.readLine(); 

      String[] val = firstTimeZone.split ("\\s+"); 
      for (int u = 0; u < val.length; u++) 
      { 
       int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u])))); 
       total1 += stats; 
       total1= total1/180; 
       data1[u] = stats; 
      } 

     } 
     else 
     if (i == 1) 
     { 
      String secondTimeZone = textReader.readLine(); 
      String[] val = secondTimeZone.split ("\\s+"); 
      for (int u = 0; u < val.length; u++) 
      { 
       int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u])))); 
       total2 += stats; 
       total2= total2/180; 
       data2[u] = stats; 
      } 

     } 
     else 
     { 
      String thirdTimeZone = textReader.readLine(); 
      String[] val = thirdTimeZone.split ("\\s+"); 
      for (int u = 0; u < val.length; u++) 
      { 
       int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u])))); 
       total3 += stats; 
       total3= total3/180; 
       data3[u] = stats; 
      } 
     } 
    } 
    textReader.close(); 
    return data1; 
} 

}

+0

如果您需要從方法中返回多個值,則您有以下選擇:數組,基元集合,對象,對象集合。 – 2014-09-28 00:57:45

回答

2

您也可以返回一個對象。所以爲了這個目的,爲什麼不簡單地創建一個擁有你請求的字段的類 - 數組和整數。

如果你不想使用這種簡單的方法,你可以使用元組。 Here's an excellent example

相關問題