2014-08-29 192 views
-4

在我的Java程序中,我有一個String數組的字符串數組,每個數組包含3個值。如何檢查一個數組中的值是否與下一個數組包含在同一個數組中

String[][] actions = 
       { 
        new String[]{"R", "R'", "R2"}, 
        new String[]{"L", "L'", "L2"}, 
        new String[]{"D", "D'", "D2"}, 
        new String[]{"U", "U'", "U2"}, 
        new String[]{"F", "F'", "F2"}, 
        new String[]{"B", "B'", "B2"} 
       }; 

現在,我讓一個隨機挑選25個值這些陣列通過隨機並保存在一個正常的字符串數組的結果(我們稱之爲結果)。現在我想檢查結果中的值0是否與值1包含在同一個數組中,這意味着如果值0爲「U」而值1爲「U」,則它應該重新展開值爲1的隨機數發生器,忽略數組值0是在最後,我想有一個字符串數組,其中沒有字符串在與它的下一個相同的數組中。

+1

對於每個數組,只有'x'的不同值有* *所有的* {x','x','x2'}'形式的數組嗎?我不得不說,我發現你的問題很難理解... – 2014-08-29 20:35:26

+1

我還是輸了。你有一個字符串數組的數組。您將從這個2維數組中隨機選擇25個值。然後,您將迭代25個值的數組,並將索引i處的值與(i + 1)進行比較。如果它們不同,你想通過從二維數組中選擇重新滾動? – coffeeaddict 2014-08-29 20:36:55

+0

@coffeeaddict假設結果[i] =「R」,結果[i + 1] =「R2」。他們都在同一陣列。我不希望同一數組中的兩個值在結果數組中相互緊靠,因此我想重新爲隨機數[i + 1]滾動,以便從不同的數組中獲得值。 – bl4ckscor3 2014-08-29 20:45:17

回答

0

根據您的評論,您可能正在尋找類似的東西?

public void mainMethod() { 

    ... 

    for(int i=0; i<(results.length-1); i++) { 
     compare(results, i); 
    } 
} 

private void compare(String[] results, int index) { 
    // compare if both values are in the same array 
    if(getRowIndex(results[index]) == getRowIndex(results[index+1])) { 
     reRoll(results, (index+1)); // reroll if so 
     compare(results, index); // revalidate in case it re-rolls to the same array value 
    } 
} 

private void reRoll(String[] results, int index) { 
    //TODO 
} 

private void getRowIndex(...) { 
    //TODO 
} 

最後兩個方法取決於你想如何實現它。有很多種方法......

相關問題