🧤
【Java】Scannerクラス とは (備忘録)
1.はじめに
ユーザーがキーボードで入力した内容や、ファイルの内容を読み取る際に使用します。
・Scanner
クラスは、java.util
パッケージに配下に属しています。
使用する場合は、パッケージをimport
する必要があります。
Scannerクラスの使用方法
import java.util.Scanner;
// Scannerインスタンス(オブジェクト)作成
Scanner scanner = new Scanner(System.in);
2.サンプルプログラム
〇例1:キーボードから入力した1行分の文字列を受け付ける
Sample_1.java
import java.util.Scanner;
public class Sample_1 {
public static void main(String args[]) {
// Scannerインスタンス(オブジェクト)作成
Scanner scanner = new Scanner(System.in);
// nextLine():1行の文字列を読み取る
System.out.println("名前を入力してください。");
String name = scanner.nextLine();
System.out.println("入力した氏名は" + name +"です。");
// scannerインスタンスを閉じる
scanner.close();
}
}
〇例2:close
メソッド使用後にキーボードからの入力を受け付けるか確認
Sample_2.java
import java.util.Scanner;
public class Sample_2 {
public static void main(String args[]) {
// Scannerインスタンス(オブジェクト)作成
Scanner scanner_1 = new Scanner(System.in);
System.out.println("名前を入力してください。");
String name_1 = scanner_1.nextLine();
System.out.println("入力した氏名は" + name_1 + "です。");
// scannerインスタンスをクローズ
scanner_1.close();
// Scannerインスタンス(オブジェクト)再作成
Scanner scanner_2 = new Scanner(System.in);
System.out.println("名前を入力してください。");
String name_2 = scanner_2.nextLine();
System.out.println("入力した氏名は" + name_2 + "です。");
}
}
・実行結果
〇例3:nextLine()
メソッド と next()
メソッドを併用
Sample_3.java
import java.util.Scanner;
public class Sample_3 {
public static void main(String args[]) {
// Scannerインスタンス(オブジェクト)作成
Scanner scanner = new Scanner(System.in);
// nextLineメソッド
System.out.println("名前を入力してください。");
String name_1 = scanner.nextLine();
System.out.println("あなたの氏名は、" + name_1 + "です");
// nextメソッド
System.out.println("再度、名前を入力してください。");
String name_2 = scanner.next();
String name_3 = scanner.next();
System.out.println("あなたの姓は、" + name_2 + "です");
System.out.println("あなたの名は、" + name_3 + "です");
scanner.close();
}
}
・実行結果
〇例4:複数メソッドと try/catch
を併用
Sample_4.java
import java.util.Scanner;
public class Sample_4 {
public static void main(String args[]) {
// 変数初期化
int age = 0;
double height = 0.0;
String flag = "Yes";
// Scannerインスタンス(オブジェクト)作成
Scanner scanner = new Scanner(System.in);
// nextLine():1行の文字列を読み取る
System.out.println("名前を入力してください。");
String name = scanner.nextLine();
System.out.println("あなたは社会人ですか。(Yes/No)");
String isWorkingAdult = scanner.nextLine();
// nextBoolean():真偽型
System.out.println("あなたは大学生ですか。(True/False)");
boolean isStudent = scanner.nextBoolean();
try {
System.out.println("年齢を入力してください。");
// nextInt():整数を読み取る
age = scanner.nextInt();
System.out.println("身長をcm単位で小数点第一位まで入力してください。");
// nextDouble():小数を読み取る
height = scanner.nextDouble();
} catch (Exception e) {
System.out.println("正しい形式で入力してください。");
}
System.out.println("あなたの氏名は、" + name + "です。");
System.out.println("あなたの年齢は、" + age + "歳です。");
System.out.println("あなたの身長は、" + height + "cmです。");
if (isWorkingAdult.equalsIgnoreCase(flag)) {
System.out.println("社会人の方は、こちらから入場可能です。");
} else if (isStudent) {
System.out.println("大学生の方は、こちらから入場可能です。");
} else {
System.out.println("入場不可です。");
}
// scannerインスタンスをクローズ
scanner.close();
}
}
〇例5:scanner.nextLine();
を使用しバッファをクリア
Sample_5.java
import java.util.Scanner;
public class Sample_5 {
public static void main(String args[]) {
// Scannerインスタンス(オブジェクト)作成
Scanner scanner = new Scanner(System.in);
System.out.println("年齢を入力してください。");
int age = scanner.nextInt();
// バッファをクリア
scanner.nextLine();
System.out.println("名前を入力してください。");
String name = scanner.nextLine();
System.out.println("あなたの年齢は、" + age + "歳です。");
System.out.println("あなたの氏名は、" + name + "です。");
// scannerインスタンスを閉じる
scanner.close();
}
}
3.参考
・#3 00:31:30 user input ⌨️
・Scannerクラスを新人エンジニアに解説
・【Java】ユーザー入力処理を行うScannerクラスの使い方
・標準入力のScannerを1度closeしたら、2度と標準入力できない理由を調べた
・JavaのScannerクラスの入力メソッドの比較
4.その他
・実行環境
Discussion