有什么作用:
System.in.read()
返回 ?文档 说:
返回: 数据的下一个字节,如果到达流的末尾,则返回 -1。
但例如,如果我输入:10
我回来了49
。这是为什么 ?
49
是 char 的 ASCII 值1
。它是第一个字节的值。
当您在控制台或终端上输入时产生的字节流10Enter包含三个字节{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 并按 Enter 后,是(在我的机器上)
49
48
10
System.in.read()
只读取一个字节。
49是1的Unicode点值。
尝试打印:
System.out.println((char)49);
这将帮助您更多地了解它。
当您输入10
时,它不是作为整数读取,而是作为字符串读取,或者更准确地说,是字节数组。
49 是字符的 ASCII 码1
。