2016-10-06 3 views
0

この混乱は私がJavaスキャナのnextLineメソッドを使用していることによるものです。 nextIntメソッドを最初に使用して数値を読み取った後、nextLineメソッドを使用する場合は、現在の行をスキップするためにnextIntメソッドを呼び出す必要があります。私はこのことを.txtファイルで理解することができますが、これは次のようなものです:数字を読み、ENTERをタイプするとカーソルが次の行にあり、nextLineメソッドを呼び出すと空の現在の行が返されます最初。改行文字はコンピュータに何を意味しますか

しかし、Enterキー(改行文字)はコンピュータ(.txtファイルではありません)に何を意味し、Enterキーを押すとコンピュータは何を行いますか、 '\ n'他の何か。

説明が難しい場合は、関連書籍をお勧めしますか?

+0

「でもIOモデルやメモリモデルであれば、ENTER(改行文字)は何を意味し、ENTERをタイプするとどうなるでしょうか? - その文章はかなり混乱しています。 – Thomas

+0

申し訳ありませんが、私はその文章を変更します。 – Micarle

答えて

1

改行文字は、文字列内の行の終わりを知らせるために使用されます。コンソールの場合、ENTERキーを押すとソフトウェアにラインバッファーが送信されます。その前に文字を削除して回線を修正することができます。 Enterキーを押すと、送信された行に改行文字が表示されます。

A「ライン」は、一般的なI/Oのための特別な何もしていますが、すでにあなたは見た:

  • バッファされた入力フラッシュ改行上の実際の出力にバッファリングされたテキストがあります。
  • フルナンバーを認識させるには、最初の非数字を読み取る必要があるため、スキャナーは数字を認識するためにフルラインを必要とします。

最も使用される行末です:Linuxでは、Androidの、MacOSXの上

  • \n:Windows上でLF = LINEFEED
  • \r\n:CR =キャリッジリターン+ LF
+0

'nextLine'は、行の終わりのない(残りの)行も読み込みます。行にintが1つだけ含まれている場合、読み込み位置は最後ですが、nextLineが呼び出されない限り、改行はスキップされません。 'Scanner'クラスはエラーが起こりやすいので、可能な限り回避するためのAPIがあります。また、代替のBufferedReaderには、行末のない行を返すreadLineがあります。行末を削除しても問題ありません。今ではWindowsとLinuxを同じように扱うことができます。 –

+0

nextIntの呼び出しがENTERによって生成されなかった後にnextLineを呼び出すときに空行が返されることを意味します。これは、nextIntの呼び出しの後、読み込み位置が現在の行の最後にあり、もちろん空であるためです。右? – Micarle

+0

はい、実際に改行を消費します。 –

関連する問題