Do While Loop使用扫描仪无法正常工作

时间:2014-03-09 18:37:53

标签: java java.util.scanner do-while

我有一个简单的Do While循环使用无法正常工作的扫描仪功能。代码应显示提示用户输入字符串的文本,用户输入字符串,然后程序再次显示相同的文本并提示用户输入另一个字符串。

程序正在做的是它显示正确的消息,用户输入一个字符串,然后它提示用户输入一个字符串而不在用户输入之前的文本。用户输入文本后,它将正常工作。

查看我的代码,我看不出有任何理由让程序在没有显示文本的情况下提示用户输入两次。

String userinput;
   Scanner sr = new Scanner(System.in);
   do{
     System.out.println("Enter a string for character classification: (EOF to end):");
      userinput = sr.nextLine();
   }while(sr.hasNext());

}
}

1 个答案:

答案 0 :(得分:0)

在使用nextLine()之前,您需要检查是否有下一行。出于这个原因,您可能应该使用常规while()循环,而不是使用do / while。

由于它是扫描仪而用户可能会不断输入文本,您可能希望将该文本保存为字符串,并在while()检查EOF消息之外放置一个循环。