2014-01-17 69 views
0

我正在用NetBeans在java中進行問答遊戲。我爲我的所有問題和另一個數組列表列出了我的答案。我把它們都按順序排列(比如第一個是安大略省的首府......而第一個答案列表是多倫多。 ..所以他們都匹配了)在java中用於問答遊戲的問題和答案的2個列表問題

我做了它,以便它隨機生成一個問題......但現在我必須得到它匹配的答案....並檢查用戶的輸入是否匹配回答。這是我試過,但它不會工作:

String input = inputTextField.getText(); 
String output = ""; 
questions = answers -------> Those are the names of my 2 array lists 

if (input = answers) { 
output = "Congratulations"; 
} 
else if (input != answers) { 
output = "You got the question wrong"; 
} 

**請幫助...也是我是初學者,謝謝:)

+0

爲什麼不嘗試使用HashMap。它會比arraylist更容易。 –

回答

1

您將需要使用contains方法檢查是否ArrayList包含問題與否。

ArrayList<String> questions = new ArrayList<String>(); 
ArrayList<String> answers = new ArrayList<String>(); 

questions.add("What is you name?"); 
answers.add("My answer here"); 

String inputQuestion ="GET_QUESTION_FROM_TEXTFIELD_HERE"; 
String inputAnswer ="GET_ANSWER_FROM_TEXTFIELD_HERE"; 

String output = ""; 

if(questions.contains(inputQuestion)) 
{ 
    if(inputAnswer.equals(answers.get(questions.indexOf(inputQuestion)))) 
     output = "Congratulations"; 
    else 
     output = "Worng answer"; 
} 
else 
    output = "You got the question wrong"; 
0

如果answers是你ArrayList那麼你如果條件應該是

if (answers.contains(input)) { 
    output = "Congratulations"; 
} 
+1

'answers.contains(input)'這並不是測試它是正確的答案,只是它是一個現有的答案。這可能是一個完全不同的問題的答案! – starsplusplus

1

更好的是使用的java.util.Map<String, String>代替2列出了您的< question, answer >雙。這樣你肯定知道你的問題的答案是正確的。

更高級的,你甚至可以做到這一點Map<String, List<String>>而且有可能一個問題有多個答案是正確的。

0

創建一個包含問題和答案的新對象並將其放置到列表中。然後從該列表中隨機獲取一個對象並從該對象發佈該問題。然後獲取輸入並檢查該對象的答案是否等於該對象中的答案。乾杯!

public class test { 


    public static void main(String[] args) { 
     ArrayList<QandA> QandAnswerCntainer = new ArrayList<QandA>(); 
     QandAnswerCntainer.add(new QandA("What is biggest flower","ROSE")); 
     QandAnswerCntainer.add(new QandA("What is biggest ship","test")); 

     Random r = new Random(); 
     int randomQ = r.nextInt(2); 
     QandA testQuestionAndAnswer = QandAnswerCntainer.get(randomQ); 

     System.out.println(testQuestionAndAnswer.getQuestion()); 

     //get the answer to the string using your input . I will make a demo answer 
     String answer = "test"; // answer got from your input method 

     if (answer.equals(testQuestionAndAnswer.getAnswer())){ 
      System.out.println("correct"); 
     } 
     else { 
      System.out.println("wrong"); 
     } 




    } 
} 

class QandA{ 

    private String question; 
    private String answer; 

    QandA(String question,String answer){ 
     this.answer = answer; 
     this.question = question; 
    } 


    public String getQuestion() { 
     return question; 
    } 

    public String getAnswer() { 
     return answer; 
    } 
}