🕌

【Java】nextLine()の注意事項

2025/01/28に公開

※「next()」や「nextInt()」のあとに「nextLine()」を使用すると空の文字列(“”)が取得されてしまうことがあります。
これを避けるには以下のような記述が必要になる場合があります。

Scanner scanner = new Scanner(System.in);

System.out.println("番号を入力してください:");
int id = scanner.nextInt();

System.out.println("コメントを入力してください:");
scanner.nextLine(); // ダミーの nextLine() を使ってバッファをクリア
String comment = scanner.nextLine(); // 1行を取得

System.out.println("番号: " + id);
System.out.println("コメント: " + comment);

scanner.close();

next() の特徴

  • 入力を1つの単語(スペースや改行で区切られた文字列)として取得します。
  • 主に、単語単位で取得したい場合に使用します。
  • スペースや改行が入力に含まれている場合、最初の単語(スペースまでの文字列)だけを返します。

例)「Hello World」と入力した場合、「Hello」が出力される例

Scanner scanner = new Scanner(System.in);
System.out.println("文字列を入力してください:");
String word = scanner.next(); // スペースまたは改行までの1単語を取得
System.out.println(word);	// Hello

nextLine()の特徴

  • 改行までのすべての文字列を取得します。
  • 主に1行全体を取得したい場合に使用します。
  • 入力された文字列にスペースが含まれていても、1行全体を返します。

例)「Hello World」と入力した場合、「Hello World」が出力される例

Scanner scanner = new Scanner(System.in);
System.out.println("1行分の文字列を入力してください:");
String line = scanner.nextLine(); // 改行までの1行を取得
System.out.println(line);	// Hello World

Udemyで講座を公開中!
https://zenn.dev/codek2/articles/e9e44f3e0023fb

X(旧Twitter)
https://twitter.com/kunchan2_

Zenn 本
https://zenn.dev/codek2?tab=books

Youtube
https://www.youtube.com/@codek2_studio

Discussion