2014-08-29 3 views
-4

Java 프로그램에서 각각 3 개의 값이 들어있는 String 배열의 String 배열이 있습니다. 배열의 값이 다음 배열과 동일한 배열에 포함되어 있는지 확인하는 방법

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입니다. 결국 String 배열을 갖고 싶습니다. String은 다음 배열과 같은 배열에 없습니다.

+1

각 배열에 대해 'x'의 값이 다른 경우 * {* ","x ","x2 "} 형태의 배열이 모두 있습니까? 나는 당신의 질문을 이해하기가 꽤 어렵다고 말해야합니다 ... –

+1

나는 여전히 길을 잃었습니다. 문자열 배열 배열이 있습니다. 이 2 차원 배열에서 무작위로 25 개의 값을 선택하려고합니다. 그런 다음 25 개 값의 배열을 반복하고 인덱스 i의 값을 (i + 1)과 비교합니다. 서로 다른 경우 2 차원 배열에서 선택하여 다시 롤백하고 싶습니까? – coffeeaddict

+0

@coffeeaddict 결과 [i] = "R"이고 결과 [i + 1] = "R2"라고 가정 해 봅시다. 둘 다 같은 배열에 있습니다. 동일한 배열에있는 두 개의 값이 결과 배열에서 서로 직접 이어지기를 원하지 않습니다. 따라서 다른 배열의 값을 제공하도록 결과 [i + 1]에 대한 randomizer를 다시 롤합니다. – 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 
} 

마지막 두 가지 방법은 구현 방법에 달려 있습니다. 여러 가지 방법이 있습니다 ...

관련 문제