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
类的新对象(因此您创建了一个新的"扫描仪"(,并将其存储在变量input
中。同时,您正在使用参数 System.in
调用类的(所谓的(构造函数。这意味着它将从程序的标准输入流中读取。
现在,当您调用input.nextInt();
时,您可以从刚刚创建的对象(也记录(执行该方法。但是正如我们所看到的,这个方法返回一个整数,所以如果我们想使用该整数,我们必须像你一样将调用分配给一个变量:
int i = input.nextInt();
Scanner input = new Scanner(System.in);
创建一个新的Scanner
实例,该实例指向作为参数传递的输入流。在您的情况下,蒸汽是标准输入流。
因此,一旦您的扫描程序实例指向它,您就可以扫描流并获取 integers
、strings
并执行其他操作。
Scanner input = new Scanner(System.in);
从程序的标准输入(在本例中可能是控制台(创建类型 Scanner
的新对象和
int i = input.nextInt()
使用该对象的nextInt
方法,该方法允许您输入一些文本,然后将其解析为整数。
Scanner s = new Scanner(System.in);
上面的语句创建了一个Scanner
类的对象,该对象在包java.util.scanner
中定义。 Scanner
类允许用户从控制台获取输入。
System.in
作为类Scanner
参数传递。它告诉java编译器系统输入将通过控制台(键盘(提供。
扫描仪输入 = 新扫描仪(System.in(;它创建一个新的 Scanner 实例,该实例指向作为参数传递的输入流。所以这里的蒸汽是标准输入流。
因此,一旦您的 scanner 实例指向它,您就可以扫描流并将值存储为整数、字符串并执行其他操作