2013-04-06 3 views
0

2 문자열 배열의 색인을 참조하는 방법을 알아 내려고하고 있습니다. checkAnswer 메서드에서 사용자 입력이 capitalArray의 인덱스 [i]에 저장되었는지 확인할 수 있지만 인덱스 [i]에 저장된 문자열을 비교하는 대신 capitalArray [i] == stateArray [i]의 인덱스를 비교하는 방법2 문자열 배열의 색인을 비교하십시오 Java

 public static void main{ 
     ... 

     for (int i = 1; i <=10; i++){ 

     System.out.println("What is the capital of " + stateArray[randomQuestion(0)]"?"); 
     answer = in.nextLine(); 

     if (checkAnswer(stateArray, capitalArray, answer) == true) 
     { 
      correct++; 
     } 
     total = i; 
    } 
    } 

    public static boolean checkAnswer(String[]stateArray, String[]capitalArray, String answer) { 

    for (int i = 0; i < stateArray.length; i++) 
    { 
     if (capitalArray[i].equalsIgnoreCase(answer) && capitalArray[i] == stateArray[i])  
     { 
      return true; 
     } 
    } 

    return false; 
} 
+0

간단한 예를 들려 줄 수 있습니까? 네가하려는 것을 이해하지 못한다. – Maroun

+0

"index [i]에 저장된 문자열을 비교하는 대신 capitalArray [i] == stateArray [i]의 인덱스를 비교하려면 어떻게해야합니까? 왜 주 및 자본 인덱스를 비교할 것입니까? – Lokesh

+0

stateArray [1] = "New York"과 capitalArray [1] = "Albany"를 비교하면 올바른 경우에도 대답이 잘못되었다고 프로그램에서 알 수 있습니다. – Fstagger

답변

0

을 할 경우는, 루프 시작하기 전에 두 배열이 동일한 길이를 가지고 있는지 확인하기에 충분합니다 사용하고 색인을 유지 한 다음 동일한 색인의 capitalArray에 대한 사용자 입력을 확인하십시오. 대답을 확인할 때 두 배열을 반복 할 필요가 없습니다. 이 같은

뭔가 :

index = Random.nextInt(50); // random number between 0-49 

System.out.println("Enter the capital for " + states[index] + ":"); 
String answer = in.nextLine(); 


//Precondition: the arrays for the capitals and state must be in the correct order for 
//this to work properly 
if (capitals[index].equalsIgnoreCase(answer)) 
{ 
    return true; 
} 
else 
{ 
    return false; 
} 

당신이 가지고있는 checkAnswer 기능 answercapitalArray에 비교하고 capitalArray[i]stateArray[i]이 같은 문자열 경우 다음보고있다. 물론 후자는 사실이 아닙니다.

+0

굉장해. 나는 이것과 몇 번 비슷한 시도를 했었지만 무작위 지수 생성은 계속 0으로 뱉어 냈다. 나는 그것을 얻었다. 지금 일하고있어. 감사! – Fstagger

0

단순히 대문자와 상태를 저장하기 위해 해시 맵을 사용하십시오. 2 개의 배열을 사용하여 복잡하게 만듭니다. Hashmap은 state를 key와 vaule로서의 capital로 가질 수 있으며, 이제 쉽게 iterate하고 check 할 수 있습니다.

편집 :

당신은 자본과 국가는 당신이 개 배열의 인덱스를 비교하여 무엇을 달성 한 후 같은 인덱스에있을 것이라는 점을 알고있다? 일단 당신이 자본 배열을 좋아하면, 당신은 끝났습니다. 상태 배열을 검사 할 필요가 없습니다.

하지만 배열 접근 방식은 권장하지 않습니다.

편집 :

그리고 모든 당신은 당신은 당신이 원하는 임의의 상태를 확인해야하는 검증

+0

2 개의 병렬 배열을 할당에 사용해야합니다. 퀴즈를 통해 사용자는 stateArray에서 무작위로 생성 된 상태의 수도 도시의 이름을 지정하게됩니다. 그런 다음 대답을 확인하고 주어진 답이 각 배열의 동일한 색인과 일치하는지 확인하는 방법을 사용해야합니다. .equals() 접근법을 사용하여 두 배열을 비교하려고하면 false가 반환됩니다. stateArray [1] = New York ... capitalArray [1] = Albany – Fstagger

+0

내 이해는 대문자를 저장한다는 것입니다. 자본 배열과 statearray의 상태. 각 주 조합은 동일한 지수로 저장됩니다. 내가 맞습니까? – Lokesh

+0

각 상태/대문자 조합이 올바른지 2 배열 – Fstagger

관련 문제