6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Scannerクラス next,nextLine,nextIntメソッドの使い分け

Last updated at Posted at 2021-02-07

#はじめに

  • nextLine
  • next
  • nextInt

上記のメソッドはScannerクラスのメソッドであり、
入力された値をスキャンするために用いられる
(コンソールに入力した値を取得したりする際に用いられる)

#注目ポイント!

これらのメソッドが分かりづらいポイントは
「改行までスキャンするか」
にあると思う。本記事ではその点において主に記載していく

#結論

  • nextLine
    ⇛改行をスキャンする
    ⇛改行のみでも改行(\n)としてスキャンしている
  • next ※1
    ⇛改行をスキャンしない
    ⇛文字をスキャンするまで改行は無視される
  • nextInt ※1
    ⇛改行をスキャンしない
    ⇛数字をスキャンするまで改行は無視される

※1 スペースは無視されず、スペースまでをスキャンする

#パターン

#####「パターン①」

  • next()
  • nextLine()

【input】
first
second
【output】
first


Scanner scan = new Scanner(System.in);
String firstWord = scan.next();
//next()は文字のみをスキャンする。改行を無視
System.out.println(firstWord);
//output:first

String secondWord = scan.nextLine();
//改行もスキャンする
System.out.println(secondWord);
//output:なにも起こらないように見える
//input時、Enterを押すため、その「\n」が入って何も出力されない

#####「パターン②」

  • next()
  • nextLine()
  • next()

【input】
first
second
【output】
first
second

Scanner scan = new Scanner(System.in);
String firstWord = scan.next();
//next()は文字のみをスキャンする。改行を無視
System.out.println(firstWord);
//output:first

scan.nextLine();
//input時、Enterを押すため、その「\n」が読み込まれている

String secondWord = scan.next();
//文字のみをスキャンする。改行を無視
System.out.println(secondWord);
//output:second

#####「パターン③」

  • next()
  • next()

【input】
first
second
【output】
first
second

Scanner scan = new Scanner(System.in);
String firstWord = scan.next();
//next()は文字のみをスキャンする。改行を無視
System.out.println(firstWord);
//output:first

String secondWord = scan.next();
//改行を無視して次の文字をスキャン
System.out.println(secondWord);
//output:second
//input時、Enterを押してもnext()は次の文字をスキャンしに行くので"word"がとってこれる

#####「パターン④」

  • nextLine()
  • nextLine()

【input】
first
second
【output】
first
second

Scanner scan = new Scanner(System.in);

String firstWord = scan.nextLine();
//改行までスキャンする
System.out.println(firstWord);
//output:first

String secondWord = scan.nextLine();
//改行もスキャンする
System.out.println(secondWord);
//output:second

#####「パターン⑤」

  • nextInt()
  • nextLine()

【input】
3
ABC

【output】
3

A,B,C,

Scanner scan = new Scanner(System.in);

int n = scan.nextInt();
//数字をスキャン。nextIntは改行をスキャンしない
String r = scan.nextLine();
//改行を取得
String word[] = scan.nextLine().split("");
//単語をスキャン。一文字ずつ配列の要素に格納。

System.out.println(n);
//出力結果:3
System.out.println(r);
//出力結果:
//※改行
for(int i = 0; i < word.length; i++) {
	System.out.print(word[i] + ",");
	//配列の要素すべての出力
	//出力結果:A,B,C,
	}
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?