如何使用 Java 扫描器读取数字和句子

How to read a number and a sentence using Java Scanner

我想了解为什么使用 Scanner.nextInt() 读取数字然后使用 Scanner.nextLine() 读取句子无法按预期工作。我有以下代码,我在其中输入了一个数字,但它跳过了对句子的收听,我的程序终止了。有人可以解释这是为什么吗?替代解决方案是什么?

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter a number: ");
    int x = scanner.nextInt();
    System.out.println("Enter a sentence");
    System.out.println(x);
    String line = scanner.nextLine();
    System.out.println(line);
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter a number: ");
   int x = scanner.nextInt();
    System.out.println(x);

    scanner.nextLine();   // skip the newline character

    System.out.println("Enter name");
    String name1 = scanner.nextLine();
    System.out.println(name1);

您需要一个不同的 Scanner 实例用于 String 接收和另一个用于 Integer

Scanner scanNumbers = new Scanner(System.in);
Scanner scanString = new Scanner(System.in);

    System.out.println("Enter a number: ");
    int x = scanNumbers.nextInt();
    System.out.println(x);

    System.out.println("Enter a sentence");
    String line = scanString.nextLine();
    System.out.println(line);

在你的代码中,你必须在 int x = scanner.nextInt();

之后写 scanner.nextLine()
    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter a number: ");
    int x = scanner.nextInt();
    scanner.nextLine();

    System.out.println("Enter a sentence");
    System.out.println(x);/*be careful, 
    here you write the result of x and below you are going to write the sentence.
    I think you better write 
    System.out.println(x); 
    above 
    System.out.println("Enter a sentence");*/ 

    String line = scanner.nextLine();
    System.out.println(line);