2014-08-29 3 views
-4

В моей программе Java у меня есть массив String массивов 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 значений из этих массивов случайных и сохранение результатов в обычном массиве String (назовем его результаты). Теперь я хочу проверить, содержится ли значение 0 в результатах в том же массиве, что и значение 1, а это означает, что если значение 0 равно «U», а значение 1 - «U», оно должно повторно запустить рандомизатор для значения 1, игнорируя массив значение 0. В конце я хотел бы иметь массив строк, где ни одна строка не находится в том же массиве, что и следующий.

+1

Все * * * * * * * * * массивы формы '{" x "," x "," x2 "}' для разных значений 'x' для каждого массива? Я должен сказать, что я нахожу ваш вопрос довольно трудно понять ... –

+1

Я все еще потерян. У вас есть массив строковых массивов. Вы произвольно выбираете 25 значений из этого 2-мерного массива. Затем вы собираетесь перебирать массив из 25 значений и сравнивать значение с индексом i с (i + 1). если они разные, вы хотите повторно прокатиться, выбрав из 2-мерного массива? – coffeeaddict

+0

@ coffeeaddict Скажем, результаты [i] = "R" и результаты [i + 1] = "R2". Оба они находятся в одном массиве. Я не хочу, чтобы два значения в одном массиве поступали непосредственно друг в друга в массиве результатов, поэтому я хотел бы повторно запустить рандомизатор для результатов [i + 1], чтобы он дал значение из другого массива. – bl4ckscor3

ответ

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 
} 

Последние два метода касаются того, как вы хотите его реализовать. Существует много способов ...

Смежные вопросы