2013-01-14 35 views
0

我是Java新手,被分配設計一個程序,該程序從文件抓取輸入並將其插入到數組的某些部分,然後導出該數據。我有代碼將文件讀入字符串數組。返回數組和循環

兩個問題:

1)如何創建一個循環來創建具有以下空白數據編號列表? (請參閱下面的代碼片段)我試圖創建一個如下所示的列表:

1 0000 0000 00000 ... 
2 0000 0000 00000 ... 

您是否看到我的循環下面有任何問題?

for (int x = 0; x < array.length; x++) { 
     array[x] = Integer.toString(y); 
     y++; 
      while (x < 16) { 
      x++; 
      array[x] = "00000"; 
      } 
    } 

2.)我可以使用單個方法返回兩個數組值嗎?我想填充兩個數組,然後將它們的值返回給其他方法使用。我找到了一種我可以使用的方法,但我不確定如何正確實施它。 我在下面的代碼片段:

public static Object[] rtrStr() { 
    //...blah blah 
    return new Object[]{array1, array2};} 
+1

您的循環是否符合您的期望?問題1的 –

+0

,什麼是y?什麼是幻數16?對於問題2,你有很多方法來做到這一點。 array [] [],List,Map – Kent

+0

我想要一個循環來完成上面的列表。爲了保持數組索引的順序,我放入了y變量,但我沒有從中得到我想要的。 –

回答

0

2)您可以返回數組的數組(或List),如果你想:

public static String[][] rtrStr() { 
    // ...blah blah 
    String[][] arr = new String[][2]; // syntax might not be exactly correct 

    arr[0] = array1; 
    arr[1] = array2; 
} 

注:我不確定有關確切的語法,但這個想法是合理的。就個人而言,我寧願使用List來代替。

就是說,你應該考慮每個數組中數據的含義。創建一個封裝數組並定義語義的自定義類是有意義的。這也使得從任何方法返回一個數組或列表變得更容易,因爲這些元素將是您新的自定義類的對象。

0

您是否看到我的循環下面有任何問題?

是的,倍數:你的代碼就是我所說的壞代碼。即使它做到了你想要的(並且我不確定這一點),對於這樣一個簡單的任務來說,這是非常難以理解的。

  1. 您正在使用xy作爲反變量名稱。當涉及多個櫃檯時,請勿這樣做!很難理解具體的計數器是什麼。
  2. 你的內部循環與外部循環的反變量相混淆。如果這是由設計,不要有史以來做到這一點。它使代碼很難理解。

另外,如果數組應該像表格(行和列)那樣保存類似於您的示例輸出中的內容,則需要一個二維數組。


我可以用一個方法返回兩個數組值?

是的,爲什麼不呢?你實際上返回一個陣列與兩個值。但是,您可以從單一方法而不是返回兩個陣列