2011-06-05 77 views
0

我試圖製作一個DeleteRecord(),其中包含任意數量的String[][]類型參數。我做了一個測試函數,只是爲了看看我需要使用什麼樣的logice來實現這個功能。我做了它的工作,但我想使用一個foreach循環。我怎樣才能做到這一點。我有這樣的代碼:如何通過Java中的foreach循環實現相同的結果

public void testSomething(String[][]... enteredStrings) { 
     for (int i = 0; i < enteredStrings[0].length; i++) { 
      for (int j = 0; j < enteredStrings[0][i].length; j++) { 
       System.out.println("i -> " + i + " " + "j -> " + j + " " + enteredStrings[0][i][j]); 
      } 
     } 
    } 

我知道如何使java在foreach循環,但我不能用多維數組來做到這一點。提前致謝。

+0

它的三維我的朋友 – prometheuspk 2011-06-05 18:13:25

+0

如果您打算修改的元素(因爲我看到,你想一個'DeleteRecord()'),你內心的循環不應該是一個foreach循環,否則陣列贏得不會被修改。 – trutheality 2011-06-05 18:16:25

回答

4

您通過String[]小號串陣列的外陣列中需要循環:

for (String[] arr : enteredStrings) { 
    for (String str : arr) { 
     ... 
    } 
} 
+0

給出所提供的代碼的for-each循環最大的困難將是第三個'println'。您在那裏使用索引,所以如果您需要按照這種方式維護該索引,則必須先從索引開始並繼續跟蹤您的位置。 – 2011-06-05 17:00:13

+0

@SLaks我認爲你忘記了'testSomething()'是一個可變類型的部分 – prometheuspk 2011-06-05 17:01:39

+1

我認爲Thomas就在這裏。無論何時您需要跟蹤指數,您都可以使用循環標準。 – 2011-06-05 17:05:01

0

對於您的設置以3D陣列下面的代碼將打印數組的內容。但是,我不確定你是如何得到每個指數的。

public void test2(String[][]... enteredStrings){ 
    for (String[] iii : enteredStrings[0]){ 
     for (String jjj: iii){ 
      System.out.println(jjj); 
     } 
    } 
}