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に代入される。
この記事が気に入ったらサポートをしてみませんか?