見出し画像

Javaメモ 文字の打ち込み(Scanner)

new java.util.ScannerとnewScanner 違い

一番上に

import java.util.Scanner;

を付けるかどうかの違い。
先にインポートさせるかどうか


以下追加情報

①int a = new java.util.Scanner(System.in).nextInt()
非推奨、折角 生成したScannerインスタンスを使い捨てにしています。
分かりやすく喩えると使い捨てライターを1回 火を付けたら捨てるようなイメージで非効率

②文字列を認識させる方法 2通り(nextとnextLine)
next:入力された値の空白"まで"の範囲で認識。
String a = new java.util.Scanner(System.in).next()

nextLine:入力された値の空白”も”認識。
String a = new java.util.Scanner(System.in).nextLine()

入力値が”99 あああ”だった場合
nextの場合は空白までの値が認識されるためaには”99”が代入される。
nextLineは空白も文字列として認識されるためbには”99 あああ”が代入。


Scannerの応用

一度の入力で複数の値を識別することが可能

Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
※nextなので、空白"まで"の値が認知する

この状態で”0000 aaaa”と入力。

そうすると
String a = sc.next(); → ”1111” ※Stringなのでint(数字)ではなく文字列
String b = sc.next(); → ”aaaa”
と出力される。

scの中には”1111 aaaa”が一時的に入り、aでは空白前の”99”が取り出され、aに代入。(この時に空白は削除されます)

そうなると、scの中に”aaaa”は残っている状態になる。
そのため、次にnextを実行するとscに残っている”aaaa”がbに代入される。

この記事が気に入ったらサポートをしてみませんか?