JavaのScannerで入力するには?配列でリストを作る練習

本記事は、Schooの「Java入門 初級【2026年版】」第2回「変数・配列・入力(Scanner)」を学んだあとに、Scanner入力と配列を組み合わせる練習をするためのステップアップ学習記事です。
ただし、Schooを受講していない方でも、Javaの基本を学び始めたばかりであれば読み進められる内容にしています。
Schoo コースページ:Java入門 初級【2026年版】
Scannerはキーボード入力を受け取る補助ツール
第2回の後半では、推し曲リストを作ります。ここでは、固定の3曲を配列に入れる形から始め、次にScannerで入力した曲名を配列に入れる形へ進めます。
まずは固定の3曲を表示する
ファイル名: SongList1.java
public class SongList1 {
public static void main(String[] args) {
String[] songs = { "推し曲1", "推し曲2", "推し曲3" };
System.out.println("== 推し曲リスト ==");
System.out.println("1: " + songs[0]);
System.out.println("2: " + songs[1]);
System.out.println("3: " + songs[2]);
}
}
実行結果
== 推し曲リスト == 1: 推し曲1 2: 推し曲2 3: 推し曲3
この段階では、配列の作成とインデックス指定を確認します。繰り返し処理はまだ使わず、1行ずつ表示して構いません。
Scannerで入力した3曲を配列に入れる
ファイル名: SongList2.java
import java.util.Scanner;
public class SongList2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] songs = new String[3];
System.out.print("1曲目の推し曲を入力してください: ");
songs[0] = sc.nextLine();
System.out.print("2曲目の推し曲を入力してください: ");
songs[1] = sc.nextLine();
System.out.print("3曲目の推し曲を入力してください: ");
songs[2] = sc.nextLine();
System.out.println("== 推し曲リスト ==");
System.out.println("1: " + songs[0]);
System.out.println("2: " + songs[1]);
System.out.println("3: " + songs[2]);
sc.close();
}
}
実行結果の例
1曲目の推し曲を入力してください: Song A 2曲目の推し曲を入力してください: Song B 3曲目の推し曲を入力してください: Song C == 推し曲リスト == 1: Song A 2: Song B 3: Song C
なぜimportが必要なのか
ScannerはJavaの標準ライブラリに含まれるクラスですが、そのままではファイル内で名前を使えません。先頭にimport java.util.Scanner;を書くことで、Scannerという名前を使えるようにします。
Scanner cannot be resolved to a type
このエラーが出たら、import java.util.Scanner;を書いているか、Scannerの大文字小文字が合っているかを確認しましょう。
nextLineとnextIntの違い
nextLine()は1行分の入力を文字列として受け取ります。曲名のような文字列にはnextLine()が扱いやすいです。年齢や点数のような整数を受け取る場合はnextInt()も使えます。
ファイル名: ScannerDemo.java
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("ニックネーム: ");
String name = sc.nextLine();
System.out.print("年齢: ");
int age = sc.nextInt();
System.out.println(name + "さん(" + age + "歳)");
sc.close();
}
}
実行結果の例
ニックネーム: たろう 年齢: 20 たろうさん(20歳)
自分で試す練習
- 固定の3曲を、自分の好きな曲名に変えて表示してください。
Scannerで入力した3曲を配列に保存して表示してください。import java.util.Scanner;を消したときのエラーを確認してください。
確認問題
Scanner sc = new Scanner(System.in);のSystem.inは何に接続するイメージか説明してください。- 曲名のような文字列を受け取るときに使うメソッドを書いてください。
- 3曲分を保存する
String配列の作成コードを書いてください。
演習後の確認: こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
- Javaの変数・配列・Scanner入力とは?初学者向けに関係を整理
- Javaの変数エラーはなぜ起きる?型・リテラル・変数名を初心者向けに解説
- Javaの配列インデックスとは?0始まり・更新・参照を初心者向けに解説
まとめ
Scannerを使うと、キーボードから入力された値をプログラムで扱えます。入力された曲名を配列に入れて表示すると、変数、配列、入力の関係をまとめて練習できます。