使用nextLine扫描仪类

时间:2015-10-18 17:46:40

标签: java int

我查看了以前的帖子,仍然无法理解“消费线”概念在这里发生了什么。有人可以慢慢地,一步一步地解释程序正在读取/做的事情,跳过字符串输入

下面是代码:

import java.util.Scanner; public class consumeScannerNextLine {

public static void main (String args []){

    Scanner key = new Scanner(System.in);

    System.out.println("number1: ");
    int num1 = key.nextInt(); 

    System.out.println("number2: ");
    String num2 = key.nextLine(); 

    System.out.println("number3: ");
    int num3 = key.nextInt(); 

    System.out.println("");
    System.out.println("");

    System.out.println(num1 + "  One");
    System.out.println(num2 + "  Two");
    System.out.println(num3 + "  Three");



}

}

输出:

number1:

10

数字2: number3:

10

10一   二 10三

所以我按照建议读了下面的其他帖子,发现其中一个答案有帮助,但仍然不清楚。

“这是因为当你输入一个数字然后按Enter键时,input.nextInt()只消耗数字,而不是”行尾“。当input.nextLine()执行时,它会消耗”行尾“在第一个输入的缓冲区中。

相反,请在input.nextInt()“

之后立即使用input.nextLine()

我的问题是,消费结束是什么意思?如果它消耗了行的末尾,那么与跳过诸如字符串的新输入有什么关系呢?这似乎是java中的一个大缺陷

此外,那么声明究竟是什么呢                 System.out.println(“number2:”);         String num2 = key.nextLine(); 做?什么存储在字符串变量num2中以及之前/之后会发生什么?

0 个答案:

没有答案