各位大牛,麻烦了,帮小弟一把!! lz System.in.read() 读一个字节当你输入1 其实是'1' 当给data的时候转为整型。 '1' --> 49System.out.write(data); 是往控制台写数据。而System.in.read就从里边读。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "注释掉System.out.println(data);以后,如果输入1,它会在控制台打印出”1“",你都没有输出怎么可能在控制台打印出1呢!你的System.in.read()是从in这个输入流中读取数据,但是你从键盘输入的"1"是存放到args[]数组中,并没写到你的in流中,所以循环不能执行啊! 第一个问题,输入1回车,在windows下是得到了三个字节,也就是'1'的ASCII码、\r(ASCII码是13)、\n(ASCII码是10)。pringln的时候,是将整数转换成字符串表现形式写入标注输出流并换行。所以看到49,就是'1'的ASCII码。那个113是1和13。write的时候,是把整数转换为字节型并输出到标准输出流,因此输出的是'1'。后面的13换行和10换行也是同理。第二个不懂。 如果你想输出字符的话 int data; 改成 char型System.in.read() 类型转换一下 (char)System.in.read()至于你现在的程序里面写的内容由于.read() 读取的是全部输入流所以包括按下的换行键 换行包括一个换行符和一个什么字符(我给忘了)所以 如果你注释掉System.out.write(data); 这句话你输出的491310 49是 字符“1”的ASCLL码13 是 enter10 是那个我记不清的字符…… System.out.write(data); 是输出字符而不是ascll码所以当你加入这句话的时候在13前面就会多出来一个“1”推荐你在两句话之间 插一句注释比如 System.out.println("-----");然后 运行程序在输入的时候输入 字母 而不是数字 会比较容易理解 问题一:行数 输出 解释 1 1 -- 输入1,换行 2 49 -- System.out.println(data); 1的ascii码49, 换行 3 113 -- System.out.write(data); 输出1 System.out.println(data); read回车键, 输出回车键的ascii码13, 换行 4 -- System.out.write(data); 输出回车键 5 10 -- System.out.println(data); read换行键, 输出换行键的ascii码10, 换行 -- System.out.write(data); 输出换行键问题二:你在代码后加个System.out.println("\n");试试 完全正确的,这段代码所有的操作都是ASCII的转换最后的那个要显示出来的话,需要加一句System.out.flush(); 因为你写的是流。 用java 监听网络通信的状态 请教一个java swing问题,谢谢!! 关于if语句的问题 将table 变成透明 什么是对象的默认序列化机制? 一个static变量初始化的问题 谁能给一个拖动鼠标画直线的关键代码 万分感激 强积金 请教!急 推荐基本JAVA的好书 HashMap中KEY的长度 会不会影响查询速度??? 有没有什么工具可以看出java程序运行了点了多少内存
pringln的时候,是将整数转换成字符串表现形式写入标注输出流并换行。所以看到49,就是'1'的ASCII码。
那个113是1和13。write的时候,是把整数转换为字节型并输出到标准输出流,因此输出的是'1'。后面的13换行和10换行也是同理。
第二个不懂。
System.in.read() 类型转换一下 (char)System.in.read()
至于你现在的程序里面写的内容
由于
.read() 读取的是全部输入流
所以包括按下的换行键 换行包括一个换行符和一个什么字符(我给忘了)
所以
如果你注释掉System.out.write(data); 这句话
你输出的
49
13
10
49是 字符“1”的ASCLL码
13 是 enter
10 是那个我记不清的字符…… System.out.write(data); 是输出字符而不是ascll码
所以当你加入这句话的时候
在13前面就会多出来一个“1”推荐你在两句话之间 插一句注释比如 System.out.println("-----");
然后 运行程序在输入的时候输入 字母 而不是数字 会比较容易理解
行数 输出 解释
1 1 -- 输入1,换行
2 49 -- System.out.println(data); 1的ascii码49, 换行
3 113 -- System.out.write(data); 输出1
System.out.println(data); read回车键, 输出回车键的ascii码13, 换行
4 -- System.out.write(data); 输出回车键
5 10 -- System.out.println(data); read换行键, 输出换行键的ascii码10, 换行
-- System.out.write(data); 输出换行键
问题二:
你在代码后加个System.out.println("\n");试试
完全正确的,这段代码所有的操作都是ASCII的转换
最后的那个要显示出来的话,需要加一句System.out.flush(); 因为你写的是流。