我一直试图让这个东西起作用,但事实并非如此。我想将int Scanner
替换为String Scanner
,但是当我这样做时,它不会等待用户输入他的答案。
System.out.println("Ditt val: "+ prov.GetCategoryName(nVal-1));
cat = prov.GetCategory(nVal-1);
int nCorrectAnswers = 0;
for(int i = 0; i < cat.nNumQuestions; i++){
System.out.print(cat.taskArray[i].sQuestion +": ");
int nMyAnswer = scan.nextInt();
if(nMyAnswer == 1){
nCorrectAnswers++;
}
}
假设我有3个问题,如果我有int,它等待用户对每个问题的答案,但如果我有字符串,它只是直接打印3个问题。
我如何使用String nMyAnswer = scan.nextLine();
等待用户回答问题。
答案 0 :(得分:-1)
来自方法nextLine()的API:
使此扫描程序超过当前行并返回跳过的输入。
尝试next()方法。
查找并返回此扫描仪的下一个完整令牌。
所以你的代码是:
System.out.println("Ditt val: "+ prov.GetCategoryName(nVal-1));
cat = prov.GetCategory(nVal-1);
int nCorrectAnswers = 0;
for(int i = 0; i < cat.nNumQuestions; i++){
System.out.print(cat.taskArray[i].sQuestion +": ");
String nMyAnswer = scan.next();
if(nMyAnswer == 1){
nCorrectAnswers++;
}
}
基本上,nextLine()用于扫描文件即中的一行,它会扫描字符串,直到找到等价的\ n。