Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

posted at

【Java】hasNext関数の使い方

プログラミング勉強日記

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?