Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java ユーザー入力をマスターする:スキャナー クラスの包括的なガイド

Scanner クラスは、Java ユーザー入力を読み取るために使用されます。 Java スキャナは java.util パッケージに組み込まれているため、それを使用するために外部ライブラリは必要ありません。スキャナーは標準入力からテキストを読み取ります。このテキストはメイン プログラムに返されるので、 保存したり操作したりできるようになります

Java でユーザー入力を取得する方法を理解することは、重要なスキルです。たとえば、サインイン フォームを備えたアプリを構築しているとします。ユーザーのログイン認証情報を収集するには、ユーザー入力を処理する必要があります。

Java では、スキャナを使用できます。 クラスを使用して、プログラム内で処理できるユーザー入力を受け取ります。このチュートリアルでは、いくつかの例を使用して、Java Scanner クラスを利用してユーザー入力を受け取る方法について説明します。

Java Scanner クラスは、ユーザー入力を収集するために使用されます。スキャナーは java.util パッケージの一部であるため、外部ライブラリをダウンロードせずにインポートできます。スキャナは標準入力からテキストを読み取り、プログラムに返します。

Scanner クラスを操作するには、まずそれをコードにインポートする必要があります。これを行うには 2 つの方法があります:

<オル>
  • java.util.Scanner だけを操作する必要がある場合 クラスを使用すると、Scanner クラスを直接インポートできます。
  • java.util で他のモジュールを使用している場合 ライブラリを完全にインポートすることもできます。
  • 以下は、上記の各メソッドのコードです。

    import java.util.Scanner;
    import java.util.*;

    コードの最初の行は、Scanner クラスをインポートします。コードの 2 行目は、Scanner を含む、java.util ライブラリ内のすべてのパッケージをインポートします。

    Java でユーザー入力データを受け取る別の方法があることは注目に値します。 Java の BufferedReader、InputStreamReader、DataInputStream、および Console クラスを使用できます。

    ただし、Scanner クラスは、Java でユーザー入力を収集する最も一般的な方法です。したがって、この記事ではそのクラスに焦点を当てます。

    Java ユーザー入力構文

    Scanner クラスを使用してユーザー入力を収集できます。 Scanner クラスは、ユーザーがコンソールに挿入したテキストを読み取り、そのテキストをプログラムに送り返します。スキャナは、Java ユーザー入力を収集する主な方法です。

    Java Scanner クラスをインポートした後、それを使用してユーザー入力を収集できるようになります。 Java Scanner クラスの構文は次のとおりです。

    Scanner input = new Scanner(System.in);
    int number = input.nextInt();
    

    この例では、input という変数を作成しました。 ユーザーがコンソールに入力する次の値を収集します。次に、number という変数を作成しました。 ユーザーがコンソールに送信した値を収集します。

    Java ユーザー入力の例

    たとえば、在庫を追跡する地元のコンピュータ ストア用のアプリケーションを構築しているとします。

    マネージャーは、店の在庫リストに商品を追加するために使用できる簡単なプログラムを作成するように私たちに依頼しました。マネージャーは、品目の名前と数量という 2 つの値を入力できるようにしたいと考えています。

    このプログラムの作成に使用するコードは次のとおりです。

    import java.util.Scanner;
    class Main {
     public static void main(String[] args) {
     Scanner input = new Scanner(System.in);
     System.out.print("Product name: ");
     String product_name = input.next();
     System.out.print("Value entered: " + product_name);
     System.out.print("Quantity: ");
     int quantity = input.nextInt();
     System.out.print("Value entered: " + quantity);
     }
    }
    

    最初の入力では項目の名前を受け入れます。項目名はテキストベースであり、さまざまな文字が使用されているため、これは文字列になります。以下のコードでは、この文字列をコード String product_name で定義します。 .

    次の入力は商品の数量です。これは数字になります。以下のコードでは、この数値を次のコードで定義します:int amount 、 ここで整数 整数を表します。

    コードを実行していくつかのサンプル値を挿入すると、プログラムは次の応答を返します。

    Product name: 15-inch MacBook Pro 2019

    Value entered: 15-inch MacBook Pro 2019

    Quantity: 7

    Value entered: 7

    ご覧のとおり、私たちのプログラムはユーザーの入力を収集しました。その後、ユーザーが入力した値がコンソールに返されます。これにより、プログラムが動作していることを確認できます。

    スキャナ Java プログラムの仕組み

    コードを段階的に分解してみましょう。

    <オル>
  • ユーザー入力を受信できるように、スキャナ ライブラリをコードにインポートします。
  • プログラムのコードを格納する Main というクラスを宣言します。
  • Scanner input =new Scanner(System.in); を使用して Scanner クラスを初期化します。 入力 Java 変数には、初期化されたスキャナが保存されます。
  • 「製品名:」をコンソールに出力し、input.next(); を使用して製品名を送信するようユーザーに求めます。 .
  • ユーザーが送信した製品名をコンソールに出力します。
  • 数量: を出力します。 コンソールに表示され、input.nextInt(); を使用して在庫製品の数量を送信するようユーザーに求められます。 .
  • 数量の値を出力します。 コンソールへの変数。
  • 数値と文字列を収集するために別のコードを使用していることに注意してください。製品名を収集するときは、input.next(); を使用しました。 、製品数量を収集するときは、input.nextInt(); を使用しました。 .

    Java スキャナ:入力タイプ

    上の例では、文字列と整数の 2 種類のデータをユーザーから収集しました。前述したように、この種のデータを収集するには別のコードを使用する必要がありました。

    文字列や整数などのさまざまな種類のデータは、個別の方法を使用して収集されます。したがって、ブール値を収集するには、float を収集する場合とは異なるコードを使用します。

    Java ユーザー入力をマスターする:スキャナー クラスの包括的なガイド

    「キャリア カルマは、私が最も必要としたときに私の人生に入り込み、すぐにブートキャンプに参加するのに役立ちました。卒業から 2 か月後、私は自分の価値観と人生の目標に合致する夢の仕事を見つけました。」

    Rockbot のソフトウェア エンジニア、Venus 氏

    ブートキャンプにマッチするものを見つけてください

    以下の表は、Scanner クラスを使用して Java でユーザー入力を収集するために使用されるすべてのメソッドを示しています。

    方法 メソッドが収集する値のタイプ nextBoolean()booleannextByte()bytenextDouble()doublenextFloat()floatnextInt()intnextLine()StringnextLong()longnextShort()short

    間違った入力タイプを挿入すると、プログラムはInputMismatchExceptionを発生させます。たとえば、ブール値を収集するフィールドに double を挿入しようとすると、プログラムによって例外が発生します。 

    ブール値の収集

    パソコン店に戻りましょう。最初のプログラムを更新して、コンピューター店のマネージャーがその製品が展示されているのか、それとも倉庫に保管されているのかを入力できるようにしたいとします。

    そのためには、on_display という新しい値を収集します。 true または false の 2 つの値しか持てないため、入力はブール値として保存されます。

    このデータを収集するために使用できるコードは次のとおりです。

    import java.util.Scanner;
    class Main {
     public static void main(String[] args) {
     Scanner input = new Scanner(System.in);
     System.out.print("Product name: ");
     String product_name = input.next();
     System.out.print("Value entered: " + product_name);
     System.out.print("Quantity: ");
     int quantity = input.nextInt();
     System.out.print("Value entered: " + quantity);
    System.out.print("On display: ");
     boolean on_display = input.nextBoolean();
     System.out.print("Value entered: " + on_display);
     }
    }
    

    コードを実行していくつかのサンプル値を挿入すると、プログラムは次の応答を返します。

    Product name: 15-inch MacBook Pro 2019

    Value entered: 15-inch MacBook Pro 2019

    Quantity: 7

    Value entered: 7

    On display: true

    Value entered: true

    私たちのプログラムは上記の例と同じように動作します。ただし、今回は、プログラムに挿入した製品が展示されているかどうかという追加の値をユーザーから収集します。 nextBoolean() を使用します。 ユーザーからこの値を収集するメソッド。次に、その値をコンソールに出力します。

    結論

    Java の Scanner クラスを使用して、ユーザーからの入力を収集できます。 Scanner クラスは、短い値、文字列、ブール値などを含むさまざまなデータ型をユーザーから収集できます。

    このチュートリアルでは、いくつかの例を使用して、Java Scanner クラスを使用してユーザー入力を収集する方法を検討しました。さらに、ユーザー入力の収集に使用できる Scanner クラスによって提供されるさまざまなデータ型についても説明しました。

    Java でのコーディングの詳細については、Java でのコーディング方法ガイドをご覧ください。


    1. JavaFXを使用して楕円を作成するにはどうすればよいですか?

      円は閉ループを形成する線であり、すべての点が中心点から一定の距離にあります。円は、その中心と半径によって定義されます。中心から円上の任意の点までの距離です。 JavaFXでは、楕円は javafx.scene.shape.Ellipseで表されます。 クラス。このクラスには、次の4つのプロパティが含まれています- centerX −このプロパティは、楕円の中心のx座標を表します。このプロパティには、 setCenterX()を使用して値を設定できます。 メソッド。 centerY −このプロパティは、楕円の中心のy座標を表します。このプロパティには、 setCenterY

    2. Javaで異なる色とフォントのJLabelテキストを実装するにはどうすればよいですか?

      JLabel JLabel クラスはJComponentを拡張できます クラスとJLabelのオブジェクトは、GUI上のテキスト命令または情報を提供します。 JLabel 1行の読み取り専用テキストを表示できます 、画像 またはテキストと画像の両方。 JLabel 異なる色とフォントで1行のテキストを表示することもできます テキストの使用 HTML内のタグ タグ。 JLabel PropertyChangeListenerを明示的に生成できます インターフェース。 例 import java.awt.*; import java.awt.event.*;