Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaでシステム開発を行う際、ユーザーからのキーボード入力により処理内容を決定したいことも要件として少なくありません。

本記事では、Javaでキーボードからの入力を読み取る方法について、サンプルコードを記載しながらご紹介していきます。

Javaではキーボードからの入力をScannerクラスで読み取る


Javaではキーボードからの入力を読み取る際、Scannerクラスを利用することが可能です。

Scannerクラスとは

Scannerクラスは「java.util」パッケージより提供されている標準入力を取得するためのクラスです。

対話型のプログラムを実装したい際などに利用出来ます。

利用する際には「import java.util.Scanner;」で読み込みを行う必要があります。

ポテパンダの一言メモ

java.utilは標準パッケージですので、Javaがインストールされていれば別途ライブラリ等を導入する必要はありません。

Scannerクラスの使い方

Scannerクラスの使い方は、下記サンプルのように記述します。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("好きな文字を入力してください。");
		String str = scan.next();
		System.out.println("入力された文字は" + str + "です。");
	}
}

実行した結果が下記です。

好きな文字を入力してください。
テスト
入力された文字はテストです。

解説

1行目は「java.util」パッケージの読み込みで、この記述がないとScannerクラスを利用することは出来ません。

6行目がScannerクラスのインスタンスを生成している部分で、引数には入力ストリームを指定しますが、今回のように標準入力を指定する場合には「System.in」と記述します。

8行目のnextメソッドが入力情報を受取る部分です。

8行目で一旦プログラムが停止し、キーボードからの入力を受け付けた後、処理が再開する流れとなります。

Javaの型を指定してキーボード入力を受け取る


先ほどご紹介したScannerクラスのnextメソッドでは、キーボードからの入力を文字列として受け取ります。

他にもScannerクラスにはいくつかのメソッドが用意されているので、一覧で確認した後、サンプルコードを確認していきましょう。

Scannerクラスの取り出し用メソッド

Scannerクラスのメソッドには下記のようなメソッドが用意されています。

取り出し用メソッド
  • next: String型
  • nextInt: int型
  • nextShort: short型
  • nextLong: long型
  • nextFloat: float型
  • nextDouble: double型
  • nextByte: byte型
  • nextBoolean: boolean型

nextInt

nextIntは入力情報を数値として受け取るメソッドです。

サンプルコードで確認してみましょう。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("好きな数字を入力してください。");
		int num = scan.nextInt();
		System.out.println("入力された数字は" + num + "です。");
	}
}

実行結果は下記です。

好きな数字を入力してください。
123
入力された数字は123です。

ちなみにint型に対応していない値を入力すると下記のようにエラーとなります。

好きな数字を入力してください。
あいうえお
Exception in thread "main" java.util.InputMismatchException

nextBoolean

nextBooleanは「true」または「false」で受け取るメソッドです。

こちらもサンプルコードで確認してみましょう。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("好きな値を入力してください。");
		Boolean bool = scan.nextBoolean();
		System.out.println("入力された値は" + bool + "です。");
	}
}

実行結果は下記です。

好きな値を入力してください。
true
入力された値はtrueです。

Scannerクラスのチェック用メソッド

Scannerクラスでは、キーボードからの入力をチェックするようのメソッドも用意されています。

チェック用メソッド
  • hasNextInt: int型のチェック
  • hasNextShort: short型のチェック
  • hasNextLong: long型のチェック
  • hasNextFloat: float型のチェック
  • hasNextDouble: double型のチェック
  • hasNextByte: byte型のチェック
  • hasNextBoolean: boolean型のチェック

hasNextInt

hesNextIntでは、値がint型として解釈可能な場合に「true」を返します。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("数字を入力してください。");
		
		if(scan.hasNextInt()) {
			int num = scan.nextInt();
			System.out.println("入力された数字は" + num + "です。");
		} else {
			System.out.println("int型に解釈出来ない値が入力されました。");
		}
		
	}
}

実行した結果が下記です。

数字を入力してください。
12.5
int型に解釈出来ない値が入力されました。

hasNextBoolean

同じくBoolean型をチェックする「hasNextBoolean」をサンプルで確認してみます。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("tureまたはfalseを入力してください。");
		
		if(scan.hasNextBoolean()) {
			Boolean bool = scan.nextBoolean();
			System.out.println("入力された値は" + bool + "です。");
		} else {
			System.out.println("Boolean型に解釈出来ない値が入力されました。");
		}
		
	}
}

実行した結果が下記です。

tureまたはfalseを入力してください。
あいうえお
Boolean型に解釈出来ない値が入力されました。

さいごに: キーボード入力を使って対話型のJavaプログラムを作成しよう


本記事では、Javaでキーボードからの入力を読み取る「Scanner」クラスの使い方についてご紹介してきました。

キーボードからの読み取りをプログラムとして組み込むことで、対話型のプログラムが作成可能です。

ユーザーからの入力情報を受け取りたいケースというのは少なくありませんので、ぜひScannerクラスの使い方を理解してご自身で開発するプログラムに組み込んでみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。