2014-08-29 199 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 
} 

最后两个方法取决于你想如何实现它。有很多种方法......

相关问题