很简单啊,
System.in.read()返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。也就是说,输入的字符,以字节流的方式从命令行传递给变量a,因此此时a是一个整数(字节流以整数的方式来表示)。实际上,刚好这个整数是ascii码中对应十进制数(具体可查看ascii码对照表)。
比如输入A,因为A在ascii码中对应的十进制数是65,所以输出的就是65 ,正好满足你所说的输入字符,输出整数!
int a=0;
while(a!=!)
try {
a = System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("a = "+a);
while(true) {
int c = System.in.read();
if(c=='!')System.exit(0);
else if(c!=13&&c!=10)System.out.println(""+(char)c+"="+c);
}