4

.nextLine()との違いについて質問があったので、API for Java を読んでいました.nextDouble()。API では、次のように記述されています.nextLine()

「このスキャナを現在の行を超えて進め、スキップされた入力を返します。このメソッドは、現在の行の残りの部分を返します。最後の行セパレータは除外されます。位置は次の行の先頭に設定されます。」

簡単です...現在の行をスキップし、スキップした行を返します。しかし、 について.nextDouble()は、次のように述べています。

「入力の次のトークンを double としてスキャンします。次のトークンを有効な double 値に変換できない場合、このメソッドは InputMismatchException をスローします。変換が成功すると、スキャナーは一致した入力を超えて進みます。」

これは.nextDouble()、 が新しい行にスキップせず、double の終わりまでしか読み取らず、行の終わりで停止することを意味するのでしょうか? これは、私が現在取り組んでいるプログラムを理解するのに役立ちます。みんなありがとう!

4

2 に答える 2

5

次の4バイトではなく、次のトークン(2つの区切り文字の間、通常は白い文字)を読み取ります。次に、可能であれば、そのトークンをdoubleに変換します。

Ex: Bla bla bla 12231231.2121 bla bla.

4番目のトークンはnextDouble()を使用して読み取ることができます。13文字を読み取り、可能であればその文字列をdoubleに変換します。

于 2012-07-18T23:48:43.820 に答える
0
nextDouble()

doubleを構成する入力ストリームから次の4バイトのみを読み取り、次の行に進みませんが、nextLine()は進みます。また、新しい行は文字列'\ n'で指定され、数値には改行が含まれないため、'nextDouble()'は次の行に'進む'ことはないことを理解する必要があると思います。

編集:ラズヴァンは正しい

于 2012-07-18T23:45:08.317 に答える