5

何をしますか:

System.in.read()

戻る ?ドキュメントには次のように書かれ ています:

戻り値:データの次のバイト、またはストリームの終わりに達した場合は-1。

しかし、例えば、私が入力した場合:10私は戻ってき49ます。何故ですか ?

4

3 に答える 3

13

49charのASCII値です1。これは最初のバイトの値です。

コンソールまたは端末で入力したときに生成されるバイトのストリームには、3バイトが含まれています(私のMacでは、システムによっては、10ではなく10、12または12で終わる場合があります)。10Enter{49,48,10}

したがって、単純なスニペットの出力

int b = System.in.read();
while (b != -1) {
    System.out.println(b);
    b = System.in.read();
}

10を入力してEnterキーを押した後、(私のマシンでは)

49
48
10
于 2013-03-07T14:18:17.117 に答える
5

System.in.read()1 バイトだけを読み取ります。

491のUnicodeポイント値です。

印刷してみてください:

System.out.println((char)49);

これにより、より理解を深めることができます。

于 2013-03-07T14:18:34.510 に答える
3

を入力する10と、整数としてではなく、文字列、またはより正確にはバイト配列として読み取られます。

49 は、文字の ASCII コードです1

于 2013-03-07T14:18:33.010 に答える