gpt4 book ai didi

Java从用户处获取用户输入

转载 作者:行者123 更新时间:2023-12-02 07:37:35 25 4
gpt4 key购买 nike

import java.util.List;

import ShortHand.utilities.CollectionCreation;

public class MultipleChoice<Q,A,C>
{
Q question;
A answer;
C choices;

public MultipleChoice(Q q, A a, C c){
question = q;
answer = a;
choices = c;
}

public Q getQuestion(){ return question; }
public A getAnswer(){ return answer; }
public C getChoices(){ return choices; }

public void addChoices(C c ){ choices = c; }
public void addQuestion(Q q){ question = q; }
public void addAnswer(A a){ answer = a; }

public String toString(){
return "Question: "+this.getQuestion()+ "\n"+
"Choices: "+this.getChoices();
}

public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner(System.in);

List<MultipleChoice<String,String,String>> mc = CollectionCreation.list();
int numOfQuestions;
System.out.print("Enter number of Question: ");
numOfQuestions = input.nextInt();
System.out.println();
for(int i = 0; i< numOfQuestions; i++){
System.out.println("Enter Question: ");
String question = input.nextLine();
System.out.println("Enter choices: ");
String choices = input.nextLine();
System.out.println("Enter Answer: ");
String answer = input.nextLine();
mc.add(new MultipleChoice(question,choices,answer));
}

for(MultipleChoice<String, String, String> items : mc)
System.out.println(items+"\n");

}
}

我的问题是,当循环开始时,我似乎无法在“输入您的问题”下输入问题本身,其他人也是如此。知道为什么吗?

我期望的是,一旦我点击输入,它就会进入“输入选择”。

但它们似乎同时打印,因此使我无法回答“输入您的问题”,我应该解决这个问题吗?

CollectionCreation 只是使用类型推断返回 arrayList()

最佳答案

因为您正在从 System.in 读取数据,所以在您按 Enter 之前扫描程序不会收到任何输入。因此,当您使用 nextInt() 只读取 int 时,缓冲区中有一个未读取的额外换行符,并且会在下一个 input.nextLine() 中立即读取它code> call (这将是一个空字符串。

尝试将 nextInt() 更改为 nextLine():

numOfQuestions = Integer.parseInt(input.nextLine().trim());

或者,您可以在 nextInt() 调用之后reset() 扫描仪。

关于Java从用户处获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com