スキャナーを使用したJavaでの複数の文字列入力[コーディング例付き]
公開: 2021-02-05目次
序章
java.utilパッケージでは、スキャナーは、double、integer、stringsなどのプリミティブ型の複数の入力を収集するのに役立つクラスの1つです。ただし、時間が作用するJavaプログラムで入力を読み取る効率的な方法ではありません。制約として、これは間違いなく、ユーザーから複数の入力を収集する最も簡単な方法の1つです。 このブログでは、スキャナークラスを使用してJavaプログラムでユーザーから複数の文字列入力を収集する方法を学習します。
スキャナーを使用して複数の入力を取得する方法
Scannerクラスを使用する前に、プログラムにjava.utilパッケージをインポートする必要があります。 次の表に、Javaプログラムでユーザーからさまざまなタイプの複数の入力を受け取るために使用されるメソッドを示します。
方法 | 入力 |
nextInt() | 整数 |
nextFloat() | 浮く |
nextDouble() | ダブル |
nextLong() | 長さ |
nextShort() | 短い |
次() | 一つの単語 |
nextLine() | 文字列の行 |
nextBoolean() | ブール値 |
Java nextLine()メソッドの使用
java.util.Scanner.nextLine()メソッドは、スキャナーを現在の行を超えて進めることによってスキップされた行を返します。 現在の行の最後に行区切り文字が指定されている場合、このメソッドはそれを除外し、現在の行から文字列の残りを返します。 スキャナーは次の行の先頭に設定され、単語の空白を含む文字列全体を読み取ります。
nextLine()メソッドの構文は次のとおりです。
パブリック文字列nextLine()
このメソッドは、次の2つの例外をスローします。

- NoSuchElementException –文字列が空であるか、行が見つからない場合。
- IllegalStateException –スキャナーが閉じている場合。
例
次の例は、java.util.Scanner.nextLine()メソッドがユーザーから複数の入力を収集する方法を示しています。
java.util.Scannerをインポートします。 パブリッククラスSacnnerDemoMultipleString {{ public static void main(String [] args) {{ スキャナーデモ=新しいスキャナー(System.in); System.out.print( "印刷する複数の入力を入力してください:"); //整数入力を取ります String [] string = new String [demo.nextInt()]; //上記の入力から<enter>を消費します demo.nextLine(); for(int i = 0; i <string.length; i ++) {{ string [i] = demo.nextLine(); } System.out.println( "\ n次の入力を入力しました:"); //for-文字列を出力するループ for(String str:string) {{ System.out.println(str); //スキャナーを閉じます Scanner.close(); } } } |
上記のプログラムは次の出力を出力します
印刷する複数の入力を入力してください:7 MISHA ハリー ロバート ハーベイ ジル レイチェル ジェニファー 次の入力を入力しました。 MISHA ハリー ロバート ハーベイ ジル レイチェル ジェニファー |
Java nextInt()メソッドの使用
java.util.Scanner.nextInt()メソッドは、ユーザーから提供された入力を整数としてスキャンします。 整数が見つかった場合、スキャナーは一致した入力を超えて進みます。
nextInt()メソッドの構文は次のとおりです。
public int nextInt()
このメソッドは、次の3つの例外をスローします。
- InputMismatchException –次のトークンが整数の正規表現と一致しない場合、または次のトークンが範囲外の場合。
- NoSuchElementException –入力が使い果たされた場合。
- IllegalStateException –スキャナーが閉じている場合。
例
次の例は、java.util.Scanner.nextInt()メソッドがユーザーから複数の入力を収集する方法を示しています。
//スキャナーを使用して整数をスキャンするJavaプログラム //クラス化して平均を出力します。 java.util.Scannerをインポートします。 パブリッククラスScannerDemoInteger {{ public static void main(String [] args) ![]() {{ スキャナーデモ=新しいスキャナー(System.in); //入力要素の合計とカウントを初期化します int sum = 0、count = 0; //整数値が存在するかどうかを確認します while(demo.hasNextInt()) {{ //整数値をスキャンします int num = demo.nextInt(); 合計+=num; count ++; } intmean=合計/カウント; System.out.println( "平均:" +平均); } } |
上記のプログラムには、次の入力があります。
101 223 238 892 99 500 728 |
上記のプログラムは、次の出力を出力します。
平均:397 |
また読む:JavaMVCプロジェクト
Java nextDouble()メソッドの使用
java.util.Scanner.nextDouble()メソッドは、ユーザーから提供された入力をdoubleとしてスキャンします。 float正規表現が見つかった場合、スキャナーは一致した入力を超えて進みます。
nextInt()メソッドの構文は次のとおりです。
public double nextDouble()

このメソッドは、次の3つの例外をスローします。
- InputMismatchException –次のトークンがfloat正規表現と一致しない場合、または次のトークンが範囲外の場合。
- NoSuchElementException –入力が使い果たされた場合。
- IllegalStateException –スキャナーが閉じている場合。
例
この例は、java.util.Scanner.nextDouble()メソッドがユーザーから複数の入力を収集する方法を示しています。
//スキャナーを使用してフロートをスキャンするJavaプログラム java.util.Scannerをインポートします。 パブリッククラスScannerDoubleRegularExpression{ public static void main(String [] args){ String new =“おはようございます! 3 + 3.0=6真」; //指定された文字列オブジェクトを使用して新しいスキャナーオブジェクトを書き込みます スキャナーのデモ=新しいスキャナー; // USロケールを使用して、文字列内のdoubleを識別できるようにします demo.useLocale(Locale.US); //次のダブルトークンを検索して印刷します while(demo.hasNext()){ //次がdoubleの場合、printが見つかり、float正規表現 if(demo.hasNextDouble()){ System.out.println( "Found:" + demo.nextDouble()); } //二重正規表現が見つからない場合は、「見つかりません」とトークンを出力します System.out.println( "見つかりません:" + demo.next()); } //スキャナーを閉じます Scanner.close(); } } |
上記のプログラムは、次の出力になります。
見つかりません:良い 見つかりません:朝! 見つかった:3.0 見つかりません:+ 見つかった:3.0 見つかりません:= 見つかった:6.0 見つかりません:true |
結論
たとえば、このブログに記載されているコードは目的であり、個人のニーズに応じて変更できます。 Javaとフルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9時間以上を提供します。プロジェクト、割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
JavaのScannerクラスとは何ですか?
Scannerクラスを使用すると、Javaのコンソール入力を使用せずにキーボードから値を読み取ることができます。 Javaのコンソール入力は遅く、リダイレクトも遅くなります。 スキャナーはより高速で便利なので、Javaのコンソール入力の代わりにスキャナーを使用する必要があります。 ScannerはJavaの通常の入力ストリームを使用するため、他のパーサーとチェーンすることができます。 スキャナーは、Javaのコンソール入力よりも使いやすいです。 Scannerには、BufferedReader、InputStreamReader、FileReaderの3つの主要なサブクラスがあります。 最も一般的なものはBufferedReaderです。 BufferedReaderは、InputStreamReaderで読み取ることができるすべてのものを読み取ることができ、1つの大きな利点があります。それはバッファです。 バッファは一度に1行を保持できます。 入力ストリームにはバッファがまったくありません。next()を呼び出すと、値が返されます。 これは、値を使用する前に値を収集する必要があることを意味します。 スキャナーがあなたに代わってそれを行います。
Javaの文字列ビルダーとは何ですか?
文字列ビルダーは、文字列を作成するための新しいタイプのクラスです。 文字列ビルダークラスは、1.3バージョンからJavaで導入されました。 多数の文字列を連結して文字列を作成でき、文字列を追加すると自動的にサイズが変更されます。 文字列の連結と比較すると、文字列ビルダーを使用すると、読みにくくなりますが、高速で柔軟性があります。 StringBuilderオブジェクトは、文字列値を作成するために使用されるオブジェクトです。 StringBuilderオブジェクトにはいくつかのメソッドがあります。
JavaのInputStreamReaderとは何ですか?
InputStreamReaderは、入力ストリームから文字のストリームを読み取り、指定された文字エンコードにデコードします。 これは、文字ストリームをあるエンコーディングから別のエンコーディングに変換する簡単な方法を提供します。 InputStreamReaderは、基になるストリームからバイトを読み取り、指定された文字セットエンコーディングを使用してそれらを文字に変換します。 これは、バイトストリームデータを文字ストリームデータに変換するために使用されるクラスです。 バイトストリームはバイナリデータを表し、文字ストリームはテキストを表します。