我有这个:
Scanner input = new Scanner ( System.in );
int selection = input.nextInt();
if (selection == 1) {
System.out.println("Please enter a string: ");
String code = input.nextLine();
}
然而,当它进入请输入一个字符串时,它不会要求任何输入。它只是用于程序的其余部分。
答案 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);