我知道很多人都问过这个,但每个人都回答是使用scanner.nextLine()
然而这对我不起作用。我有这段代码:
if (option == 1) {
System.out.println("What is the name of the goal the task is under?: ");
String goalName = scanner.next();
}
当我使用.next()
时,我只能得到一个单词,但是当我使用.nextLine()
时,命令行不允许用户输入任何内容,因此它要求"什么是任务所在目标的名称?:" 然后继续执行该程序而不让输入发生。
答案 0 :(得分:4)
以下测试代码有效:
package asdfsadf;
import java.util.Scanner;
public class Asdfsadf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("What is the name of the goal the task is under?: ");
String goalName = scanner.nextLine();
System.out.println("You entered: ");
System.out.print(goalName);
}
}
所以唯一的问题是如果你之前使用扫描仪说你有scanner.nextInt()
并且在扫描仪中留下一个空的“行尾”。所以nextLine将从前一次调用开始。要解决此问题,只需创建一个新的扫描仪对象。