LoginSignup
0
0

Scanner クラス 

Posted at

Scannerクラス

  • キーボードやファイルから入力された情報を取り込む。
  • Javaで入力処理を行うクラス。入力処理は、キーボードから入力を行う場合や、ファイルから入力を行う場合などに使う。
  • 入力処理は、ユーザーによる任意の情報をjavaのプログラムで扱う場合に必要。

Scannerクラスのメソッド一覧

メソッド 用途
next 区切り文字までの入力を取得する(デフォルトの区切り文字は空白)
nextLine 改行までの入力を取得する
nextInt 整数の入力を取得する
nextDouble 小数点を含む数値の入力を取得する
nextBoolean 真偽値の入力を取得する
useDelimiter 区切り文字を指定する
hasNext 入力の読み込みが続くか判定する

next,nextLine,nextInt,nextDoubleの4つを実装してみる

next()

ackage text_section_23;
import java.util.Scanner;

public class Scanner_Test1 {

	public static void main(String[] args) {
		
		System.out.println("こちらに入力");
		
		// Scannerクラスのオブジェクトを生成する
		Scanner scanner = new Scanner(System.in);
		
		// 入力された内容を取得する
		String inputwords = scanner.next();
		
		// 入力された内容を出力
		System.out.println(inputwords);
		
		// クローズ
		scanner.close();
	}

}

下記がコンソールの表示
1.
スクリーンショット 2024-02-17 11.49.09.png
2. 空白で区切った文字を入力
スクリーンショット 2024-02-17 11.49.46.png
3. 田中 太郎と入力後、エンターキー押下。空白で区切った前の部分のみ(田中)が出力される。

スクリーンショット 2024-02-17 11.49.58.png

// 入力された内容を取得する
		String inputwords = scanner._______();

nextLine()

上記でアンダーバーの部分を目的に合わせて変更すると取得できる文字列を変えれる。
例えばnextLine()にすると、開業するまでの文字列を取得できる。

// 入力された内容を取得する
		String inputwords = scanner.nextLine();

実行結果
田中太郎と入力後に、エンターキー押下。
田中太郎が表示される。
スクリーンショット 2024-02-17 11.58.57.png

nextInt() 整数の受け取り

受け取る側の方もintに変更し、nextInt()メソッドに変更。
入力された数値を受け取ることができる。

// 入力された内容を取得する
		int inputwords = scanner.nextInt();

実行結果
空白の前の部分だけ表示される
スクリーンショット 2024-02-17 12.04.15.png
全角でもOK
スクリーンショット 2024-02-17 12.04.53.png
ハイフンはエラーが起きる
スクリーンショット 2024-02-17 12.05.15.png

nextDouble() 小数点

nextInt()の部分をnextDouleに変更し、受け取る側の方もdouobleに変更する。

// 入力された内容を取得する
		double inputwords = scanner.nextDouble();

実行結果
スクリーンショット 2024-02-17 15.01.10.png
スクリーンショット 2024-02-17 15.01.24.png

ファイルから入力を受け取る

あらかじめjavaファイルと同じフォルダにtest.txtを保存しておく。
スクリーンショット 2024-02-17 15.26.27.png

  • Scannerクラスでオブジェクトを生成する際にtest.txtを渡す
  • new File(ファイルパス)で、Fileオブジェクトが生成される
Scanner Scannerクラスのオブジェクト = new Scanner(new File(ファイルパス))
package text_section_23;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Scanner_Test7 {

	public static void main(String[] args) throws FileNotFoundException {
		// Scannerクラスのオブジェクトを生成
		Scanner scanner = new Scanner(new File("/Users/◆◆◆◆◆◆◆/◆◆◆◆◆◆◆/study/java_workspace/study/src/text_section_23/test.txt"));
		
		//ファイルの読み込みが続く場合、処理を続ける
	      while(scanner.hasNext()) {
	         //改行までの入力を受け取る
	         String input= scanner.nextLine();
	         System.out.println(input);
	}

	}

}

実行結果
スクリーンショット 2024-02-17 15.43.29.png

hasNext()メソッド

上記のファイルを取り入れるコードの一連の中にあった下記の部分の解説。

//ファイルの読み込みが続く場合、処理を続ける
	      while(scanner.hasNext()) {
	         //改行までの入力を受け取る
	         String input= scanner.nextLine();
	         System.out.println(input);
	}

渡したファイルは3行あります。
hasNext()メソッドで3回読み込みが続き、nextLine()で改行より前の文字列を読み込む処理を3回繰り返している。

0
0
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
0
0