Scannerクラスについて
導入
Scannerクラスはjava.utilパッケージに含まれるクラスです。
主にコンソール画面の入力、csvファイルの読み込みに使います。
例題
まずよく使う型指定の入力について見てみましょう。
コード画面
はい、こんな感じになります。
ちなみにこれでは不完全なのですが見やすいので一旦解説します。
順番としては
①
まず、Scannerクラスをimportします。importの決まりはimport パッケージ名.クラス名
です。
②
次にインポートしたScannerクラスをインスタンス化します。
System.inがコンソールでの入力(標準入力)です。
③
指定の型の変数を作成。
そこにScannerクラスのnextInt()メソッドで値を取得し初期化します。
他にも型指定だとnextByte, nextShort, nextLong, nextFloat, nextDouble, nextBoolean があります。char 型のメソッドだけがないですね。文字列にはnext と nextLine があります。
④
最後にcloseメソッドでScannerを閉じる必要があります。
closeがないと予期せぬエラーを引き起こすため気をつけましょう。
例外処理
不完全と言ったのは、実は上記のコンソール入力の画面でint型以外の入力をしてしまうとエラーが起きてしまいます。
コンソール画面
このように予期せぬ処理を行おうとするとエラーが起きるので、この場合の処理を予期しときます。(日本語わからん)
例外が起きる可能性の処理はtry-catch構文で覆います。if文と同じ要領です。
try{
例外の起こる可能性のある処理;
}catch(<例外クラス> <変数名>){
例外が起きた時に行う処理;
}
です。今回ですと
注意点としては
①
例外処理のクラスをimportする必要があります。
よく見ると一番上にimport java.util.InputMismatchException; // 例外処理用のもの
が追加されているのがわかります。
②
System.out.println("入力された数値は " + num + " です。");
をtry-catch文のそとに出すと例外の場合も処理を行ってしまいます。(今回は num のスコープが try ブロックの中なのでエラーが起きますが)
これは気持ち悪いですね〜。
まとめ
超基本的なScannerの使い方をまとめてみました。
次は正常処理を行うまで入力をループさせるコードの記事をまとめました。