Java 扫描器没有接受我的字符串输入

The Java Scanner is not taking my String Input

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int i = scan.nextInt();
    double d = scan.nextDouble();
    String s = scan.nextLine();
    

    System.out.println("String: " + s);
    System.out.println("Double: " + d);
    System.out.println("Int: " + i);
}

这是我的代码。它编译正确,没有语法错误,但我不明白为什么我的字符串输入没有被接受。只要我给出整数输入和双输入,输出就会出现:

输入

42

309.23

输出

字符串:

双:309.23

整数:42

scan.nextDouble()scan.nextInt() 未完成该行,因此当 scan.nextLine() 变得简单时,您可以说它消耗了剩余的空白行,因此 String 不打印任何内容。要消耗剩余的行,请将 scan.nextLine() 放在 String s = scan.nextLine();

之前

请注意,对于单行输入 1 1.1 done 您将得到输出:

String:  done
Double: 1.1
Int: 1

输出中 done 前面有一个 space 字符,提示您扫描器一次消耗一个令牌。例如,查看 scan.nextInt and scan.nextLine

的文档