What does Scanner input = new Scanner(System.in) actually mean?

大憨熊 提交于 2019-11-28 00:30:55

问题


Scanner input = new Scanner(System.in);

Could you give me a detailed explanation on what the code above is doing step by step? I don't really understand how it works and how it links to me later being able to do this statement:

int i = input.nextInt()

回答1:


Alright, let's elaborate with some simplified explanation about the Scanner class.

It is a standard Oracle class which you can use by calling the import java.util.Scanner.

So let's make a basic example of the class:

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;
   }
}

Now when you call Scanner input = new Scanner(System.in); you make a new object of the Scanner class (so you make a new "Scanner") and you store it in the variable input. At the same time you are calling the (so called) constructor of the class, with the parameter System.in. That means it is going to read from the standard input stream of the program.

Now when you are calling input.nextInt(); you execute the method from the object you just created (also documented). But as we see, this method returns a integer, so if we want to use that integer, we have to assign the call to a variable like you do:

int i = input.nextInt();



回答2:


Scanner input = new Scanner(System.in); creates a new Scanner instance which points to the input stream passed as argument. In your case the steam is Standard input stream.

So, once your scanner instance is pointing to it, you can scan the stream and get integers, strings and do other stuff .




回答3:


Scanner input = new Scanner(System.in);

Creates a new object of type Scanner from the standard input of the program (in this case probably the console) and

int i = input.nextInt()

uses the nextInt Method of that object, which allows you to enter some text and it will be parsed into an integer.




回答4:


Scanner s = new Scanner(System.in);

Above statement we create an object of a Scanner class which is define in import java.util.scanner package. scanner class allows user to take input form console.

System.in is passed as parameter in scanner class will tell to java compiler system input will be provided through console(keyboard).



来源:https://stackoverflow.com/questions/30612811/what-does-scanner-input-new-scannersystem-in-actually-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!