不要求输入

时间:2011-03-24 21:01:48

标签: java

我有这个:

Scanner input = new Scanner ( System.in );
int selection = input.nextInt();
if (selection == 1) {
System.out.println("Please enter a string: ");
String code = input.nextLine();
}

然而,当它进入请输入一个字符串时,它不会要求任何输入。它只是用于程序的其余部分。

3 个答案:

答案 0 :(得分:6)

Scanner等待nextInt(),直到用户按下回车键。当发生这种情况时,它会消耗数字但新行字符本身。因此,下一次调用nextLine()会立即返回一个空String作为结果。

这应该解决它:

int selection = input.nextInt();
input.nextLine();
if (selection == 1) {
   System.out.println("Please enter a string: ");
   String code = input.nextLine();

但我首选的方法是始终使用nextLine并分别进行解析:

String selectionStr = input.nextLine();

//consider catching a NumberFormatException here to handle erroneous input
int selection = Integer.parseInt(selectionStr); 

if (selection == 1) {
   System.out.println("Please enter a string: ");
   String code = input.nextLine();
   //...

答案 1 :(得分:0)

尝试:

input.nextLine();

在你的nextInt()之后;

Scanner input = new Scanner(System.in);
int selection = input.nextInt();
input.nextLine();
System.out.println(selection);
if (selection == 1) {
    System.out.println("Please enter a string: ");
    String code = input.nextLine();
}

答案 2 :(得分:0)

简单&图形输入:

String str=JOptionPane.showInputDialog(null,"Message","Title",JOptionPane.QUESTION_MESSAGE);