Menu
CoddyTech

Scannerクラス

CoddyのJavaジャーニー「基礎」セクションの一部。レッスン 35/73。

これまでは、考えた値を変数に保存してきました。プログラムは通常、このようには動きません。たとえば、ユーザーなど外部の情報源から値を受け取ります。

Javaでは、ユーザーからの入力を取得するにはScannerクラスを使用します。このクラスには、整数、浮動小数点数、文字列など、さまざまな種類の入力を読み取るメソッドが用意されています。

Scannerクラスを使うには、まずそのインスタンスを作成し、標準入力ストリームのSystem.inと関連付ける必要があります。次のようにします。

Scanner scanner = new Scanner(System.in);

Scannerオブジェクトを取得したら、そのメソッドを使って入力を読み取ることができます。

よく使われるメソッドをいくつか紹介します。

  • nextInt(): 整数を読み取ります。
  • nextDouble(): 倍精度浮動小数点数を読み取ります。
  • nextLine(): テキストの1行(文字列)を読み取ります。

ユーザーから入力を受け取る方法の例を見てみましょう。

Scanner scanner = new Scanner(System.in);
System.out.print("Enter your age: ");
int age = scanner.nextInt();
System.out.println("Your age is: " + age);

この例では、プログラムはユーザーに年齢の入力を求め、nextInt()を使って整数を読み取り、それをコンソールに出力します。

Scannerの使用が終わったら、関連するリソースを解放するために、scanner.close()を使って閉じるのがよい習慣です。

challenge icon

チャレンジ

初心者

ユーザーから入力(名前)を受け取り、その後、ユーザーが入力した名前に続けてHello, を出力するプログラムを書きましょう。

たとえば、ユーザーがBobを入力した場合、期待される出力はEnter your name: Hello, Bobです。

次のことを行う必要があります。

  1. 入力を読み取るためのScannerオブジェクトを作成します。
  2. 正確にEnter your name: を使って、ユーザーに名前の入力を促します。System.out.printで出力し、printlnは使わないでください。そうすると、挨拶が同じ行に続けて表示されます。
  3. 適切なScannerメソッドを使って、ユーザーの名前を読み取ります。
  4. 最後にHello, と保存した変数を出力します。

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // Scannerオブジェクトを作成する
        Scanner scanner = new Scanner(System.in);
        
        // ユーザーに名前の入力を促す
        
        
        // ユーザーの名前を読み取る
        
        
        // 挨拶のメッセージを表示する
        
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Javaオンラインコンパイラ