【问题标题】:Match 2 arraylists of questions and answers for a quiz game in java匹配 2 个问题和答案的数组列表,用于 Java 中的问答游戏
【发布时间】:2014-01-17 05:55:16
【问题描述】:

我正在用 netbeans 用 java 制作一个问答游戏。我为我的所有问题制作了一个数组列表,为我的答案制作了另一个数组列表。我将它们都按顺序排列(比如第一是安大略省的首府……而在答案列表中,第一是多伦多。 ..所以他们都匹配)

我这样做是为了让它随机生成一个问题……但现在我必须让它与答案匹配……并检查用户的输入是否与答案匹配。这是我尝试过的,但它不会工作:

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";
}

** 请帮助...我也是初学者,谢谢:)

【问题讨论】:

  • 为什么不尝试使用 HashMap。它会比arraylist容易得多。

标签: java string if-statement 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";

【讨论】:

    【解决方案2】:

    更好的是为您的&lt; question, answer &gt; 对使用java.util.Map&lt;String, String&gt; 而不是2 个列表。这样您就可以确定您的问题的正确答案。

    更高级的是,您甚至可以这样做Map&lt;String, List&lt;String&gt;&gt;,而且对于一个问题,可能有多个答案是正确的。

    【讨论】:

      【解决方案3】:

      如果 answers 是你的 ArrayList 那么你的 if 条件应该是

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

      【讨论】:

      • answers.contains(input) 这并不能测试它是否是正确的答案,只是它是一个现有的答案。这可能是一个完全不同的问题的答案!
      【解决方案4】:

      创建一个包含问题和答案的新对象并将其放入列表中。然后从该列表中随机获取一个对象并从该对象中发布问题。然后获取输入并检查该对象的答案是否等于该对象中的答案。干杯!

      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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-01
        • 2019-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-02
        相关资源
        最近更新 更多