キーボード入力から取得!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」クラスの基本的な使い方は次のようなかんじです。
- コンストラクタに読み取り先の入力ストリームを指定してインスタンス化する
- 入力があるか判定する
- 入力があれば、その内容を取り出す
コンストラクタ
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で実行している場合は、停止ボタンをクリックすることでプログラムを終了させましょう。
監修してくれたメンター
青柳哲夫
独立系SIerやベンチャーを経て、現在はフリーランスエンジニアとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。