简单的琐事游戏比较

时间:2017-09-20 02:24:03

标签: java

该程序的输出总是错误的答案。我想知道如何将用户输入与getAnswer()方法进行比较。我是Java的新手。任何一般提示都会很棒。

Trivia Class

import java.util.Scanner;

public class Trivia
{
 private String question;
 private String answer;

 public void setQuestion(String question)
{
 this.question = question;
}
 public void setAnswer(String answer)
{
 this.answer = answer;
}
 public String getQuestion()
{
 return question;
}
 public String getAnswer()
{
 return answer;
}
}

主类

import java.util.Scanner;

public class TriviaTest extends Trivia
{
public static void main(String[]args)
{
Scanner keyboard = new Scanner(System.in);

TriviaTest t1 = new TriviaTest();
TriviaTest t2 = new TriviaTest();
t1.setQuestion("What is the longest river? ");
t1.setAnswer("The Amazon River");
t2.setQuestion("What is the capital of Spain?");
t2.setAnswer("Madrid");
System.out.println(t1.getQuestion());

String a = keyboard.next().toLowerCase();
String b = t1.getAnswer();
if(b.equals(a))
{
  System.out.println(" Yes! Correct! ");
}

else
{
  System.out.println(" BZZZZZZ! Wrong answer!");
}
}
}

1 个答案:

答案 0 :(得分:3)

您的实际答案有大写和小写字母,但您比较的值已转换为全部小写。 keyboard.next().toLowerCase()

不区分大小写的比较是你真正想要的琐事游戏。也可以将存储的答案转换为小写,或者存储混合大小写的答案,并对用户输入进行不区分大小写的比较(String.equalsIgnoreCase())。

注1:基本调试的第1步:System.out.println("a=" + a + ", ans=" + t1.getAnswer());可以解决这个问题。

注意2:更好的解决方案是将boolean checkAnswer(String answer)添加到Trivia类,而不是将这个重要逻辑添加到main中。