search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

java Scannerクラス

Scannerクラスについて

導入

Scannerクラスはjava.utilパッケージに含まれるクラスです。

主にコンソール画面の入力、csvファイルの読み込みに使います。

説明読むのめんどくさいんで例題行きます。
スクリーンショット 2020-05-26 15.37.27.png

例題

まずよく使う型指定の入力について見てみましょう。
コード画面
スクリーンショット 2020-05-26 14.32.14.png

コンソール画面
スクリーンショット 2020-05-26 14.32.20.png

はい、こんな感じになります。
ちなみにこれでは不完全なのですが見やすいので一旦解説します。

順番としては

まず、Scannerクラスをimportします。importの決まりはimport パッケージ名.クラス名です。

次にインポートしたScannerクラスをインスタンス化します。
System.inがコンソールでの入力(標準入力)です。


指定の型の変数を作成。
そこにScannerクラスのnextInt()メソッドで値を取得し初期化します。

他にも型指定だとnextByte, nextShort, nextLong, nextFloat, nextDouble, nextBoolean があります。char 型のメソッドだけがないですね。文字列にはnext と nextLine があります。


最後にcloseメソッドでScannerを閉じる必要があります。
closeがないと予期せぬエラーを引き起こすため気をつけましょう。

例外処理

不完全と言ったのは、実は上記のコンソール入力の画面でint型以外の入力をしてしまうとエラーが起きてしまいます。
コンソール画面
スクリーンショット 2020-05-26 15.17.01.png

このように予期せぬ処理を行おうとするとエラーが起きるので、この場合の処理を予期しときます。(日本語わからん)

例外が起きる可能性の処理はtry-catch構文で覆います。if文と同じ要領です。
try{
例外の起こる可能性のある処理;
}catch(<例外クラス> <変数名>){
例外が起きた時に行う処理;
}

です。今回ですと

コード
スクリーンショット 2020-05-26 15.24.23.png

コンソール画面
スクリーンショット 2020-05-26 15.24.35.png

注意点としては 

例外処理のクラスをimportする必要があります。
よく見ると一番上にimport java.util.InputMismatchException; // 例外処理用のものが追加されているのがわかります。


System.out.println("入力された数値は " + num + " です。");をtry-catch文のそとに出すと例外の場合も処理を行ってしまいます。(今回は num のスコープが try ブロックの中なのでエラーが起きますが)
スクリーンショット 2020-05-26 15.35.29.png
これは気持ち悪いですね〜。

まとめ

超基本的なScannerの使い方をまとめてみました。
次は正常処理を行うまで入力をループさせるコードの記事をまとめました。

次へ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0