デジタルトレンドナビ
システム開発

2024.03.26

ユーザー入力処理を行うJava「Scanner」クラス

ユーザー入力処理を行うJava「Scanner」クラス

Webサービスやアプリ開発において、ユーザーからの入力を受け付ける機能は欠かせません。Javaでユーザー入力を取得する最も一般的な方法は、Scannerクラスを使用することです。


本記事では、Java初心者でもScannerクラスを使いこなせるよう基礎から丁寧に解説していきます。

この記事でわかること

  • javaのscanner概要
  • scannerの基本的な使い方
  • サンプルコード

javaのscannerとは

javaのscannerとは

JavaのScannerクラスは、さまざまな入力ソースからテキストを読み取るためのシンプルなテキストスキャナです。

このクラスを使用すると、キーボード入力、ファイル、または他の入力ソースからのデータを読み込むことができます。

Scannerクラスはjava.utilパッケージに属しており、プリミティブ型の値(int、floatなど)や文字列を簡単に解析できるメソッドを提供します。使用方法は非常に柔軟で、区切り文字をカスタマイズすることも可能です。これにより、入力されたデータを効率的に処理し、必要な情報を抽出することが容易になります。

合わせて読みたい

【初心者でも分かる】Javaとは? | デジタルトレンドナビ

【初心者でも分かる】Javaとは? | デジタルトレンドナビ

この記事では、汎用性とオブジェクト指向性を備えたプログラミング言語「Java」について初心者向けに解説しています。Javaの特徴、用途、基本的なサンプルコードを紹介しています。

scannerの基本的な使い方

scannerの基本的な使い方

Scannerクラスを使うには、まずインスタンスを作成する必要があります。インスタンス化には、以下の2つの方法があります。

標準入力からの入力

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    // 標準入力から入力を受け取るScannerインスタンスを作成
        Scanner scanner = new Scanner(System.in);
        // ...
    }
}

ファイルからの入力

import java.util.Scanner;
import java.io.File;

public class Main {
    public static void main(String[] args) throws Exception {
        // ファイルから入力を受け取るScannerインスタンスを作成
        Scanner scanner = new Scanner(new File("input.txt"));
        // ...
    }
}

入力データの読み取り

Scannerクラスには、さまざまなデータ型に対応した nextXXX() メソッドが用意されています。

文字列の読み取り

String name = scanner.nextLine();

数値の読み取り

int age = scanner.nextInt();
double height = scanner.nextDouble();

区切り文字の設定

scanner.useDelimiter(",");

// カンマ区切りの入力を読み取る
String[] values = scanner.next().split(",");

エラー処理

try {
    int age = scanner.nextInt();
} catch (InputMismatchException e) {
    System.out.println("不正な入力です。");
}

終了処理

Scannerクラスを使用し終えたら、close() メソッドを呼び出してリソースを解放する必要があります。

scanner.close();

サンプルコード

サンプルコード

上記の解説を踏まえたサンプルコードを紹介します。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("名前を入力してください:");
        String name = scanner.nextLine();
        System.out.print("年齢を入力してください:");
        int age = scanner.nextInt();
        System.out.println("こんにちは、" + name + "さん。" + age + "歳ですね。");
        scanner.close();
    }
}

まとめ

まとめ

Javaの「Scanner」クラスについて紹介しました。

Webサービスやアプリ開発で不可欠なユーザー入力を受け付ける機能を提供します。このクラスはjava.utilパッケージに属し、キーボード、ファイルなどの多様な入力ソースからテキストデータを読み取り、プリミティブ型や文字列の解析を簡単に行えます。

Scannerの使い方には、標準入力やファイルからの入力受け取り、入力データの読み取り方法、エラー処理、終了処理が含まれます。柔軟な使用方法と区切り文字のカスタマイズ機能により、入力データを効率的に処理し、必要な情報を抽出することが可能になります。

投稿者

  • デジタルトレンドナビ編集部

    システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。