web-dev-qa-db-ja.com

Scanner input = new Scanner(System.in)は実際にはどういう意味ですか?

Scanner input = new Scanner(System.in);

上記のコードがステップごとに実行していることについて詳細な説明をお願いします。私はそれがどのように機能し、後でこの声明を行うことができるのか私にリンクする方法を本当に理解していません:

int i = input.nextInt()
8
The Man

さて、 Scanner クラスについての簡単な説明で詳しく説明しましょう。

これは、_import Java.util.Scanner_を呼び出すことで使用できる標準のOracleクラスです。

それでは、クラスの基本的な例を作りましょう:

_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();
_
6
moffeltje

Scanner input = new Scanner(System.in);は、引数として渡される入力ストリームを指すnewScannerインスタンスを作成します。あなたの場合、Steamは標準入力ストリームです。

そのため、スキャナーインスタンスがそのインスタンスをポイントしたら、スキャンストリームを取得し、integersstringsを取得して他の処理を実行できます。

3
TheLostMind

Scanner s = new Scanner(System.in);

上記のステートメントでは、import Java.util.scannerパッケージで定義されているScannerクラスのオブジェクトを作成します。 scannerクラスを使用すると、ユーザーはコンソールから入力フォームを取得できます。

System.inは、スキャナークラスのパラメーターとしてJavaコンパイラシステム入力がconsole(keyboard)を介して提供されます)として渡されます。

0
Scanner input = new Scanner(System.in);

プログラムの標準入力(この場合はおそらくコンソール)からScanner型の新しいオブジェクトを作成し、

int i = input.nextInt()

そのオブジェクトのnextIntメソッドを使用します。これにより、テキストを入力でき、整数に解析されます。

0