我正在尝试在java中创建一个程序,以便使用扫描仪从用户那里得到答案,然后将该结果与数字的arraylist进行比较,即多选题,然后打印出一个字符串。我可以将arraylist中的值与值和打印进行比较,但是当输入扫描仪时,没有任何反应。
欢呼'public static void main (String [] args){
ArrayList<String> answersArray = new ArrayList<String>();
answersArray.add("4");
answersArray.add("5");
answersArray.add("10");
answersArray.add("20");
System.out.println("Please select the answer from the list below\n" + answersArray);
Scanner answer = new Scanner(System.in);
String value = ExamQuestionSimpleChoice.answer;
if ( value == (answersArray.get(0))){
System.out.println("This answer is correct, you gained: " );
}
}
public static String getValue() {
return value;
}
public static void setValue(String value) {
ExamQuestionSimpleChoice.value = value;
}`
答案 0 :(得分:0)
实例化扫描仪只会准备扫描仪对象。您需要调用answer.readLine()并将其存储在字符串变量中。
然后你需要遍历arraylist并将其与你从扫描仪存储的值进行比较。
答案 1 :(得分:0)
本地无法访问的变量的setter和getter有什么意义?
正如James所说,你需要通过调用.nextLine()
来读取带有Scanner对象的输入字符串,而不仅仅是将整个扫描器对象与目标进行比较。接下来,您需要将==
替换为.equals(answersArray.get(0))
,它才能正常工作
答案 2 :(得分:0)
添加answer.next()以从键盘输入!您只是初始化但未提供参考。