はじめに
Javaで「ユーザーに質問して答えてもらう」小さなアプリを作るとき、最初に出会うのが Scanner(スキャナー) です。
キーボードで入力した文字を、プログラムが扱いやすい形にしてくれる“読み取り係”。
むずかしく考えなくて大丈夫。今回は いちばん最初の一歩 を、ピカチュウと一緒に
やさしく確認します。
🎓 Scannerってなに?
- 入ってきた文字を、単語 や 数値 などの「意味のあるかたまり」にして取り出す
- どこから読む? → 標準入力(キーボード)・ファイル・文字列
- まずは「1行丸ごと読む」
nextLine()からはじめよう
大事なポイント
- 余計なトラブルを避けるため、最初は
nextLine()で受ける
→ 必要なら数値に変換 の順で考える
🎓 まず1行、読んでみよう
キーボードから入力された 1行だけ読み取って、そのまま返事 をする
最小のプログラムです。
import java.util.Scanner;
public class Main {
// 研究所の端末に常駐するイメージ。System.inは閉じない。
private static final Scanner SC = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("ポケモンの名前> ");
String name = SC.nextLine().trim(); // Enterまでを丸ごと取得。余計な空白は落とす
System.out.println("記録: name=" + name);
}
}
-
new Scanner(System.in)… キーボードとつながる読み取り係 -
nextLine()… Enterを押すまでを丸ごと受け取る -
trim()… 前後の空白を落として、空白だけの入力を避ける
🎓 入口はいくつかある(雰囲気だけ)
-
ファイルから読む:
new Scanner(Path.of("pokedex.txt"))など -
文字列から読む:
new Scanner("id=025,name=Pikachu")など
詳しい使い方は後の回でやります。今は「いろんな入力方法があるんだな」でOK。
🎓 よくあるつまずき(今日は“名前だけ”)
-
nextInt()のあとnextLine()が空になる
→ 詳細は後日解説(今日はnextLine()だけ使う)
⚡ ピカチュウ例:研究メモを1行で記録
名前と生息地を聞いて、1行でまとめます。
import java.util.Scanner;
public class Main {
private static final Scanner SC = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("ポケモンの名前> ");
String name = SC.nextLine().trim();
// 入力例:ピカチュウ
System.out.print("生息地> ");
String area = SC.nextLine().trim();
// 入力例:ピカチュウの森
System.out.println("記録: name=" + name + " area=" + area);
// 出力例:記録:name=ピカチュウ area=ピカチュウの森
}
}
あとがき
Scannerが「入力を読み取って、プログラムが扱いやすくする係」だと分かりました。
次回は、nextLine() だけで “一問一答” のアプリを完成させ、
空白だけの入力を防ぐコツ まで押さえます。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!