LoginSignup
3
3

More than 3 years have passed since last update.

【Java】hasNext関数の使い方

Posted at

プログラミング勉強日記

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クラスを使う方法【初心者向け】

3
3
0

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
  3. You can use dark theme
What you can do with signing up
3
3