Scanner input = new Scanner(System.in);
您能否详细解释一下上面的代码是如何逐步执行的?我不太理解它是如何运作的,以及它与我后来能够执行这个语句有何联系:
int i = input.nextInt()
Scanner input = new Scanner(System.in);
您能否详细解释一下上面的代码是如何逐步执行的?我不太理解它是如何运作的,以及它与我后来能够执行这个语句有何联系:
int i = input.nextInt()
好的,让我们用一些简化的解释来详细说明Scanner
类。
它是一个标准的Oracle类,您可以通过调用import java.util.Scanner
来使用它。
那么让我们来举一个该类的基本示例:
class Scanner {
InputStream source;
Scanner(InputStream src) {
this.source = src;
}
int nextInt() {
int nextInteger;
//Scans the next token of the input as an int from the source.
return nextInteger;
}
}
现在,当你调用Scanner input = new Scanner(System.in);
时,你创建了一个新的Scanner
类对象(也就是创建了一个新的“Scanner”对象),并将其存储在变量input
中。同时,你正在调用该类的(所谓的)构造函数,参数为System.in
。这意味着它将从程序的标准输入流中读取。
现在,当你调用input.nextInt();
时,你执行刚刚创建的对象的方法(同样有文档说明)。但正如我们所看到的,这个方法返回一个整数,所以如果我们想使用这个整数,我们必须将调用分配给一个变量,就像你所做的那样:
int i = input.nextInt();
Scanner input = new Scanner(System.in);
创建了一个新的 Scanner
实例,该实例指向传递为参数的输入流。在您的情况下,流是标准输入流。
因此,一旦您的扫描仪实例指向它,您就可以扫描流并获取整数
、字符串
等内容。
Scanner input = new Scanner(System.in);
从程序的标准输入(在这种情况下可能是控制台)创建一个新的Scanner
类型对象。
int i = input.nextInt()
nextInt
方法,它允许您输入一些文本,并将其解析为整数。Scanner input = new Scanner(System.in); 它创建了一个新的Scanner实例,该实例指向作为参数传递的输入流。因此,在这里,流是标准输入流。
因此,一旦您的扫描仪实例指向它,您就可以扫描流并将值存储到整数、字符串中,并执行其他操作。
Scanner s = new Scanner(System.in);
java.util.scanner
包中定义的Scanner
类对象。Scanner
类允许用户从控制台输入。
System.in
作为参数传递给Scanner
类。它告诉Java编译器系统输入将通过控制台(键盘)提供。