icon
icon

キーボード入力から取得!JavaでScannerクラスを使う方法【初心者向け】

初心者向けにJavaでキーボードからの入力を読み取る方法について解説しています。入力の読み取りにはScannerクラスを使います。入力の判定とデータの処理方法について実際の例も見ながら覚えていきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

この記事では、Javaでキーボードからの入力を読み取る方法について解説します。

実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。

 

そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
 

なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

キーボードからの入力を読み取る方法について詳しく説明していくね!

大石ゆかり

お願いします!

キーボードからの入力を読み取る方法(Scannerクラスの使い方)

Javaでキーボードからの入力を読み取るには、「Scanner」クラスを使います。

「Scanner」クラスの基本的な使い方は次のようなかんじです。

  1. コンストラクタに読み取り先の入力ストリームを指定してインスタンス化する
  2. 入力があるか判定する
  3. 入力があれば、その内容を取り出す

 

コンストラクタ

public Scanner(InputStream source)

 

入力があるか判定

public boolean hasNext()

その他、データ型に応じた次のメソッドも用意されています。

入力内容はあってもそのデータ型に変換できない場合は、これらメソッドはfalseを返します。(例:次のデータが「あいうえお」のときに「hasNextInt( )」を呼び出すとfalse)

public boolean hasNextInt()
public boolean hasNextBoolean()
public boolean hasNextDouble()
public boolean hasNextBigDecimal()

 

入力内容を取り出す

取り出すデータの型に応じたメソッドが用意されています。代表的なものをいくつか挙げておきます。

public String next()
public int nextInt()
public boolean nextBoolean()
public double nextDouble()
public BigDecimal nextBigDecimal()

 

実際に書いてみよう

キーボードから入力された文字を反転して表示するプログラムを作ってみましょう。

import java.util.Scanner;

public class Reverser {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        try {
            System.out.println("キーボードから何か入力してみてください");
            while (s.hasNext()) {
                String value = s.next();
                System.out.println(new StringBuilder(value).reverse());
            }
        } finally {
            s.close();
        }
    }
}

プログラムを起動し、キーボードから適当な値を入力してみてください。

次のような結果になると思います。

キーボードから何か入力してみてください
test
tset
aiueo
oeuia
あいうえお
おえういあ
これはテストです
すでトステはれこ
こんばんは
はんばんこ

なお、このプログラムは、「while」ループを使って「入力があるまでずっと待ち続ける」という状態を作っています。ですので入力を止めてもいつまで経ってもプログラムは終了せず、入力待ちのままです。

EclipseなどのIDEで実行している場合は、停止ボタンをクリックすることでプログラムを終了させましょう。

 

[PR] 未経験からWebエンジニアを目指す方法とは

監修してくれたメンター

青柳哲夫

独立系SIerやベンチャーを経て、現在はフリーランスエンジニアとして活動しています。
PHPやJava・Rubyでの業務系Webアプリケーション開発が得意です。
TechAcademyではJavaコース・ブロックチェーンコースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。