Javaでユーザー入力を受け取るには?Scannerクラスの使い方を解説

アイキャッチ画像

Scannerクラスとは何かを理解しよう

Javaでプログラムを作る際に、ユーザーからキーボードを通じて入力を受け取りたいと思ったことはありませんか。そんなときに便利なのがScannerクラスです。Scannerクラスは、標準入力やファイルなどからデータを簡単に読み取るためのクラスで、Javaの標準ライブラリであるjava.utilパッケージに含まれています。

とくに初心者の方が最初に出会うのは、標準入力からの読み取りだと思います。たとえば、名前や年齢などをキーボードから入力してもらい、その情報をプログラム内で使いたいという場面です。Scannerを使えば、そのような操作をとても簡単に実現できます。

Scannerクラスは、System.inという標準入力ストリームと組み合わせて使います。これにより、コンソール上で入力された文字や数値を1行ずつ、あるいは1単語ずつ読み取ることが可能になります。しかも、文字列だけでなく整数や小数などのさまざまな型に変換してくれるため、型変換の手間もほとんどかかりません。

使い方も非常にシンプルです。まずScannerのインスタンスを作成し、その後にnextLineやnextIntなどのメソッドを呼び出すだけで、必要なデータを取得できます。基本的な文法を一度覚えてしまえば、応用するのも難しくありません。

このように、Scannerクラスはユーザーからの入力を受け取るための強力なツールです。次の章では、実際に文字列を読み込む具体的な方法について詳しく解説していきます。自分でも試してみながら学ぶと、理解がさらに深まりますので、ぜひコードを書いて確かめてみてください。

Scannerを使って文字列を入力する方法

前の章でScannerクラスが何かを学びましたが、今回は実際にScannerを使って文字列を入力する方法について解説していきます。Javaでキーボードから文字列を入力したいときは、ScannerクラスのnextLineメソッドを使うのが基本です。このメソッドを使うことで、ユーザーが入力した1行分の文字列をそのまま取得することができます。

まずScannerを使うには、java.utilパッケージからインポートしておく必要があります。そして、標準入力と接続するためにScannerのコンストラクタにSystem.inを渡してインスタンスを作成します。そのあとにnextLineメソッドを呼び出せば、コンソールに入力された内容を文字列として受け取ることができます。

以下に、実際の使用例を紹介します。ユーザーから名前を入力してもらい、それを画面に表示する簡単なプログラムです。

import java.util.Scanner;

public class ScannerExample {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("名前を入力してください:");

        String name = scanner.nextLine();

        System.out.println("こんにちは、" + name + "さん");

        scanner.close();

    }

}

このプログラムでは、まず「名前を入力してください」と表示し、ユーザーの入力をnextLineで受け取って変数nameに格納しています。そのあと、入力された名前を使って挨拶を表示しています。とてもシンプルですが、Scannerの基本的な使い方を学ぶにはぴったりの例です。

注意しておきたいのは、Scannerを使い終わったら必ずcloseメソッドでストリームを閉じるようにすることです。これにより、メモリの無駄遣いやリソースリークを防ぐことができます。

文字列入力はユーザーとの対話を実現するうえでとても重要な機能です。まずはこの例を参考にしながら、いろいろな文字列を受け取るプログラムを試してみてください。次の章では、文字列以外の数値を入力する方法について詳しく解説していきます。こちらも実用的な内容なので、ぜひ続けて学んでみてください。