与扫描仪混淆 class -> nextLine()

Confusion with scanner class -> nextLine()

我写了一个基本代码来读取不同的数据类型。但我无法输入字符串作为输入。我错过了什么?

public class Main {

public static void main(String[] args) {
    Scanner read = new Scanner(System.in);
    int integer = read.nextInt();
    double Double = read.nextDouble();
    String string = read.nextLine();
    System.out.printf("String: %s\nDouble: %f\nInt: %d",string,Double,integer);
}
}

您必须 "eat up" 双重遗留下来的换行符。

Scanner read = new Scanner(System.in);
int integer = read.nextInt();
double Double = read.nextDouble();
read.nextLine();
String string = read.nextLine();
System.out.printf("String: %s\nDouble: %f\nInt: %d",string,Double,integer);

问题是在 nextDouble() 之后仍然有一个换行符,所以扫描仪读取了下一行,但其中没有任何内容...