Javaでユーザー入力を取得する方法[例付き]
公開: 2021-05-27目次
序章
Javaでユーザー入力を取得することは、Javaで成功するソフトウェアを作成するための最初のステップです。 Javaプログラムは、マウス、キーボード、ネットワーク要求、CLI引数など、さまざまな入力ソースを介してユーザーからの入力を収集します。Javaには、入出力操作を実行するためにプログラムにインポートできるさまざまなI/Oパッケージもあります。 これらのパッケージは、double、integer、stringsなどのプリミティブ型の入力をサポートします。
この記事では、Javaでユーザー入力を取得するためのScanner、BufferedReader、InputStreamReaderなどのメソッドに焦点を当てます。
Scannerクラスを使用してJavaで入力を取得する方法は?
Scannerクラスは、すべてのプリミティブ型入力を解析および処理する「java.util」パッケージのメソッドの1つです。 Scannerクラスは、ユーザーに入力の入力を求め、画面またはコンソールに同じものを印刷します。 プログラムの「java.util」パッケージからScannerクラスをインポートし、そのメソッドを使用するオブジェクトを作成できます。
例えば、
スキャナーテスト=新しいスキャナー(System.in);
上記のステートメントでは、testはオブジェクトの名前であり、System.inは入力ストリームです。 作成されたScannerインスタンスは、Javaでのユーザー入力をスキャンします。
注:プログラムの入力文字列としてSystem.inを記述する必要はありません。 入力ストリームとして文字列を読み取るファイルとファイルに置き換えることができます。
例えば、
スキャナーテスト=newScanner(new FileInputStream(“ testFile.txt”)、“ UTF-8”);
編集が完了したら、必ずコード{test.close()}を記述してスキャナーを閉じてください。
ユーザーからの入力を読み取るためのスキャナーメソッド
次の表に、スキャナーがユーザーが入力したJavaの入力を読み取るために使用するメソッドを示します。
方法 | 返品タイプ | 説明 |
次() | ストリング | スキャナーから次のトークンを返します |
nextByte() | バイト | 次の入力をバイトとして読み取ります。 |
nextFloat() | 浮く | 次の入力をfloatとして読み取ります。 |
nextInt() | 整数 | 次の入力を整数として読み取ります。 |
nextShort() | 短い | 次の入力をショートとして読み取ります。 |
nextLong() | 長さ | 次の入力をlongとして読み取ります。 |
nextBoolean() | ブール値 | 次の入力をブール値として読み取り、値を返します。 |
nextLine() | ストリング | スキャナーを1行進め、スキップされた入力を返します。 |
例
次のJavaプログラムは、Scannerクラスを使用して、 Javaでのユーザー入力(文字列、整数、およびフロート)を取得します。
java.util.Scannerをインポートします。 クラスTakeUserInput {{ public static void main(String args []) {{ int a; フロートb; 文字列c; スキャナーテスト=新しいスキャナー(System.in); //ユーザー入力を文字列として取得します System.out.println( "文字列を入力してください:"); c = in.nextLine(); System.out.println( "ユーザー入力文字列は次のとおりです:" + c); //ユーザー入力を整数として受け取ります System.out.println( "整数を入力してください:"); a = in.nextInt(); System.out.println( "ユーザー入力整数は次のとおりです:" + a); //ユーザー入力をfloatとして取得します System.out.println( "フロート番号を入力してください:"); b = in.nextFloat(); System.out.println( "ユーザー入力フロート番号は次のとおりです:" + b); }} |
出力
文字列を入力します。 アンドリュー ユーザー入力文字列は次のとおりです。Andrew 整数を入力してください: 03 ユーザー入力整数は次のとおりです:03 浮動小数点数を入力します。 61.46 ユーザー入力フロート番号は次のとおりです:61.46 |
スキャナークラスを使用したJavaでの入力の取得について詳しく知りたい場合は、Scannerブログを使用したJavaでの複数文字列入力を確認してください。
BufferedReaderおよびInputStreamReaderメソッド
BufferedReaderは、文字ベースの入力ストリームから文字のストリームをスキャンするJavaの別のクラスです。 InputStreamReaderは、入力ストリームをBufferedReaderがスキャンする文字のシーケンスに変換するJavaの関数です。 BufferedReaderクラスは、InputStreamをパラメーターとして受け入れます。
BufferedReaderクラスは、read()メソッドとreadLine()メソッドを使用して、文字と次の行を読み取り、それらを返します。
BufferedReaderクラスを作成するには、java.io.BufferedReaderパッケージをインポートする必要があります。
//FileReaderを作成します
FileReader test = new FileReader(String file);
//BufferedReaderを作成します
BufferedReader a = new BufferedReader(test);
世界のトップ大学からソフトウェアエンジニアリングの学位をオンラインで取得します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
ユーザーからの入力を読み取るためのBufferedReaderメソッド
次の表に、バッファリングされたリーダーがユーザーが入力したJavaの入力を読み取るために使用するメソッドを示します。
方法 | 説明 |
準備() | ファイルリーダーが読み取り状態にあるかどうかを確認します。 |
マーク() | データが読み取られたバッファ付きリーダー内の位置をマークします。 |
reset() | マークが設定されたポイントにコントロールを戻します。 |
例
次のJavaプログラムは、InputStreamReaderクラスと一緒にBufferedReaderクラスを使用して、 Javaでユーザー入力を取得します。
インポートjava.io.BufferedReader; インポートjava.io.FileReader; インポートjava.io.IOException; パブリッククラステスト{ public static void main(String [] args){ BufferedReader buffer = null; 試す { 文字列scanFirstLine; buffer = new BufferedReader(new FileReader(“ D:\\ user_input.txt”)); while((scanFirstLine = buffer.readLine())!= null){ System.out.println(scanFirstLine); } } catch(IOException a){ a.printStackTrace(); } 最後に { 試す { if(buffer!= null) buffer.close(); } catch(IOException b){ b.printStackTrace(); }}}}} |
出力
次のデータがファイルにあります。 これは、BufferedReaderがファイルから読み取るサンプルステートメントです。 |
上記の例では、bufferという名前のバッファ付きリーダーを作成しました。 バッファリングされたリーダーは、「user_input.txt」ファイルにリンクされています。
次に、readLine()メソッドを使用して、バッファリングされたリーダーのバッファから文字をスキャンしました。
結論
この記事では、Javaでユーザー入力を取得するために使用されるメソッドについて説明しました。 例とともに、ScannerメソッドとBufferedReaderメソッドについて説明しました。 また、ScannerおよびBufferedReaderクラスがJavaで入力を取得するために使用するメソッドについても説明しました。 Javaで入力を処理する方法の基本を理解していることを願っています。 より多くのJavaプログラミング言語を学びたい場合は、働く専門家向けに設計されたフルスタック開発コースのupGradのエグゼクティブPGプログラムをチェックしてください。