今日Javaで非常に奇妙なことを見つけたので、次のようになります-
ユーザーから複数のことを入力している場合は、次のように言います。
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
double d = sc.nextDouble();
String s = sc.nextLine();
System.out.println(i);
System.out.println(d);
System.out.println(s);
したがって、このプログラムを実行すると、これら 3 つの入力を求められ、入力値が 10、2.5、「Java へようこそ」と表示されるように見えるかもしれません。nextLine を使用したように、プログラムはこれら 3 つの値をそのまま出力するはずです。 () したがって、変数sに入力したスペースの後のテキストは無視されません。
しかし、あなたが得る出力は -
10
2.5
それだけです。文字列入力のプロンプトすら出ません。今、私はそれについて読んでいましたが、正直なところ、私の理解にはまだいくつかのギャップがあります。私が理解できたのは、int 入力を取得してから、Enter キーを押したときに double 入力を取得した後だけでした。 nextLine()。
だから私のコードをこのようなものに変更する -
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
double d = sc.nextDouble();
sc.nextLine();
String s = sc.nextLine();
System.out.println(i);
System.out.println(d);
System.out.println(s);
完璧に仕事をするので、これを使用してバイパスできる前の例のキーボードバッファーに格納されている "\n" のようなものに関連しています。
誰かがこれについての説明を手伝ってくれたら、教えてください。