如何使用扫描仪获得整行输入

时间:2015-09-22 16:29:40

标签: java

我知道很多人都问过这个,但每个人都回答是使用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()时,命令行不允许用户输入任何内容,因此它要求"什么是任务所在目标的名称?:" 然后继续执行该程序而不让输入发生。

1 个答案:

答案 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将从前一次调用开始。要解决此问题,只需创建一个新的扫描仪对象。