System.in.read实际返回什么?
问题描述:
答
49
是char 1
的ASCII值。它是第一个字节的值。
的流,当你进入 您的控制台上输入或终端包含三个字节{49,48,10}
(我的Mac上,可以用10,12或12结尾,而不是所产生的字节 10,取决于你的系统)。
所以简单的片断
int b = System.in.read();
while (b != -1) {
System.out.println(b);
b = System.in.read();
}
进入10和按下回车键后的输出,是(我的机器上)
49
48
10
答
当你进入10
,它不被读取作为整数,但是作为一个字符串,或者更确切地说是一个字节数组。
49是字符1
的ASCII码。
答
System.in.read()
只读一个字节。
为的的Unicode点值。
尝试打印:
System.out.println((char)49);
这将帮助你更了解它。
为什么不读取整个'10'? – saplingPro 2013-03-07 14:21:27
因为'10'是两个字节。表示字符1的字节,后跟表示字符“0”的字节。 – 2013-03-07 14:24:51
@saplingPro'System.in.read()'只读取一个字节。 – Maroun 2013-03-07 14:24:55