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()を使って閉じるのがよい習慣です。
チャレンジ
初心者ユーザーから入力(名前)を受け取り、その後、ユーザーが入力した名前に続けてHello, を出力するプログラムを書きましょう。
たとえば、ユーザーがBobを入力した場合、期待される出力はEnter your name: Hello, Bobです。
次のことを行う必要があります。
- 入力を読み取るための
Scannerオブジェクトを作成します。 - 正確に
Enter your name:を使って、ユーザーに名前の入力を促します。System.out.printで出力し、printlnは使わないでください。そうすると、挨拶が同じ行に続けて表示されます。 - 適切な
Scannerメソッドを使って、ユーザーの名前を読み取ります。 - 最後に
Hello,と保存した変数を出力します。
自分で試してみよう
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Scannerオブジェクトを作成する
Scanner scanner = new Scanner(System.in);
// ユーザーに名前の入力を促す
// ユーザーの名前を読み取る
// 挨拶のメッセージを表示する
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ