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.
2. 空白で区切った文字を入力
3. 田中 太郎と入力後、エンターキー押下。空白で区切った前の部分のみ(田中)が出力される。
// 入力された内容を取得する
String inputwords = scanner._______();
nextLine()
上記でアンダーバーの部分を目的に合わせて変更すると取得できる文字列を変えれる。
例えばnextLine()
にすると、開業するまでの文字列を取得できる。
// 入力された内容を取得する
String inputwords = scanner.nextLine();
実行結果
田中太郎と入力後に、エンターキー押下。
田中太郎が表示される。
nextInt() 整数の受け取り
受け取る側の方もintに変更し、nextInt()
メソッドに変更。
入力された数値を受け取ることができる。
// 入力された内容を取得する
int inputwords = scanner.nextInt();
実行結果
空白の前の部分だけ表示される
全角でもOK
ハイフンはエラーが起きる
nextDouble() 小数点
nextInt()
の部分をnextDoule
に変更し、受け取る側の方もdouoble
に変更する。
// 入力された内容を取得する
double inputwords = scanner.nextDouble();
ファイルから入力を受け取る
あらかじめjavaファイルと同じフォルダにtest.txt
を保存しておく。
-
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);
}
}
}
hasNext()
メソッド
上記のファイルを取り入れるコードの一連の中にあった下記の部分の解説。
//ファイルの読み込みが続く場合、処理を続ける
while(scanner.hasNext()) {
//改行までの入力を受け取る
String input= scanner.nextLine();
System.out.println(input);
}
渡したファイルは3行あります。
hasNext()
メソッドで3回読み込みが続き、nextLine()
で改行より前の文字列を読み込む処理を3回繰り返している。