#はじめに
- 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,
}