永发信息网

初学java 请教System.in.read();

答案:3  悬赏:30  手机版
解决时间 2021-01-23 11:11
  • 提问者网友:鼻尖触碰
  • 2021-01-22 19:09
import java.io.*;
public class SysteminRead{
public static void main(String[] args){
int a = 0;
System.out.println(a); //这里输出是0,为什么不是ascii编码48?是不是unicode编码,是不是十六进制表示的即:0000 0000 0000 0000??
try {
a = System.in.read(); //如果输入1的话,这个1是不是用unicode编码的,是不是由两个字节表示?此时a是不是等于ascii编码,而a此时就等于这四个字节的int型表示形式:49,这个49是不是用二进制表示的??还是。。。
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("a = "+a); //如果键盘输入1,输出49
}}
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-01-22 19:47
System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。

也就是说,输入的字符,以字节流的方式从命令行传递给变量a,因此此时a是一个整数(字节流以整数的方式来表示)。

实际上这个整数是ascii码中对应十进制数(具体可查看ascii码对照表)。
比如输入a,因为a在ascii码中对应的十进制数是97,所以输出的就是97
全部回答
  • 1楼网友:我住北渡口
  • 2021-01-22 21:32
System.in.read()返回的是输入数值的 ASKII 码(一个 int 整数)。
  • 2楼网友:十鸦
  • 2021-01-22 20:02
这位朋友,根据您的问题解答如下,如有不明之处可以继续补充: 首先你要确保,在你 c:\program files\java\jdk1.6.0_13\bin 这个路径下有一个叫做demo.java的文件。然后才能试用javac来进行编译。你放在c盘下不行,必须在 c:\program files\java\jdk1.6.0_13\bin>这个目录下面。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯