プログラミング勉強日記
2020年12月27日
【Java】標準入力を取得・出力する方法で標準入力について扱っているが、そのときにhasNextの存在を知らなかったので、今日簡単にまとめる。
Scannerクラスとは
標準出力するときやファイルのなかみを読み込むときに使う。
Scannnerクラスのインスタンスを作る際に標準出力の場合はSystem.in
をファイルを読み込む場合はfileオブジェクトを設定する。
Scanner 変数 = new Scanner(値);
hasNext関数とは
Scannnerクラスでファイルを読み込んだときにまだ繰り返し処理ができるかどうか判定する処理である。前から順番に値を取得して、まだ値を取得できるときにはtrueを、これ以上値を取得できないときにはfalseを返す。
いくつ入力されるかわからない場合は、for文で回数を指定して受け取ることができないので、そういったときに使う。
hasNext関数とセットで使われるのがnext関数である。next関数は前から順番に値を取得していき、hasNext関数で値があるかを判定する場所を次に進める。
while(繰り返したいオブジェクト.hasNext()) {
String 変数 = 繰り返したいオブジェクト.next();
後続処理;
}
サンプルコード
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Sample {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("sample.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
String str = scanner.next();
System.out.println(str);
}
scanner.close();
}
}
import java.util.Scanner;
public class Sample {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
try {
while (s.hasNext()) {
String value = s.next();
System.out.println(new StringBuilder(value).reverse());
}
} finally {
s.close();
}
}
}
参考文献
ScannerのhasNextメソッドの使い方
JavaのScannerクラスのhasNext関数について現役エンジニアが解説【初心者向け】
キーボード入力から取得!JavaでScannerクラスを使う方法【初心者向け】