Scanner input = new Scanner(System.in);
您能否详细解释上面的代码是如何逐步完成的?我真的不明白它是如何工作的以及它之后如何能够做到这一点:
int i = input.nextInt()
答案 0 :(得分:6)
好的,让我们详细说明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
调用类的(所谓的)constructor。这意味着它将从程序的标准输入流中读取。
现在,当您调用input.nextInt();
时,您可以从刚创建的对象(也是documented)执行该方法。但是正如我们所看到的,这个方法返回一个整数,所以如果我们想要使用那个整数,我们必须像你一样将调用分配给变量:
int i = input.nextInt();
答案 1 :(得分:2)
Scanner input = new Scanner(System.in);
创建一个 new Scanner
实例,该实例指向作为参数传递的输入流。在您的情况下,蒸汽是标准输入流。
因此,一旦您的扫描仪实例指向它,您就可以扫描该流并获取integers
,strings
并执行其他操作。
答案 2 :(得分:0)
Scanner input = new Scanner(System.in);
从程序的标准输入(在这种情况下可能是控制台)创建类型为Scanner
的新对象
和
int i = input.nextInt()
使用该对象的nextInt
方法,它允许您输入一些文本,并将其解析为整数。
答案 3 :(得分:0)
扫描仪s =新扫描仪(System.in);
上面的语句我们创建了一个Scanner类的对象,该对象在 import java.util.scanner 包中定义。 scanner类允许用户输入控制台。
System.in 作为参数传递给scanner类将告诉java编译系统输入将通过控制台(键盘)提供。