2 fanjijk fanjijk 于 2016.05.07 14:55 提问

JAVA入门,输入小程序出现诡异的结果,求解!

public class read{
public static void main(String []args){
char c='a';
do{
System.out.println("请输入一个字符:");
try{
c=(char)System.in.read();
}catch(Exception e){ e.getMessage(); }
System.out.println(c);
}while(c!='q');
System.out.println("已退出");
}
}
运行结果:图片说明
为什么"请输入一个字符:" 会出现3次?而且第二次后面换行2次? 这到底是什么鬼?

4个回答

liuhuancai0703
liuhuancai0703   2016.05.07 16:00
已采纳

当你输入字符‘b' 并按回车时,System.in.read() 实际上读入了 b/r/n , /r 是回车符,/n是换行符。
你可以把输出还原为int 类型打印,根据打印的十进制数值查一下ASCII 码对照表。
System.out.print((int)c);

CSDNXIAOD
CSDNXIAOD   2016.05.07 15:02

【基于java的九宫格求解程序】
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

svmachine
svmachine   2016.05.07 15:29

判断信息包括a\r\n,不是只有a,你调试一下就知道了,另外你可以看下read()的原理

fanjijk
fanjijk   2016.05.07 16:14

该方法是从一个流中一个一个的读取数据,因此是一个迭代的过程。输入‘a’回车,其实是输入了3个字符:‘a’\r \n ,按下回车键代表两个字符。
所以一共比较3次。 感谢svmachine 的回答。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
1002: 【入门】编程求解1+2+3+...+n(循环结构专讲)
#include using namespace std; int main(){ //基础结构 int n, s=0; //定义 cin>>n; //输入 for (int i=1; i//循环 ,枚举出所有的i,即相加的所有数 s+=i; // 可表示为s=s+i,为多个,可累计增加 ,切记s需赋值0 cout//加好,数求出,即可输出 return
Servlet入门----创建第一个自己的Servlet小程序
Servlet入门----创建第一个自己的Servlet小程序 使用开发工具创建第一步: 打开Myeclipse或者Eclipse,新建一个Web project,然后新建一个类Demo01.java,勾选如下图所示位置,并选择实现接口javax.servlet.Servlet,点击Finish: 第二步:编写Servlet实现类 点击完成后,工具会自动生成,如下图所示代码,我们的目的
破解字谜游戏的小程序
游戏描述:
java基础的一些小程序(入门必备)
我找的一些小的题目,解答了一些,供大家参考! 我下载下来的一些小的题目,解答了一些,供大家参考! 我下载下来的一些小的题目,解答了一些,供大家参考! 我下载下来的一些小的题目,解答了一些,供大家参考!我下载下来的一些小的题目,解答了一些,供大家参考!我下载下来的一些小的题目,解答了一些,供大家参考! 我下载下来的一些小的题目,解答了一些,供大家参考!
微信小程序入门视频
微信小程序教学视频 拥抱变化, 拥抱未来,对小程序看好也罢,不看好也罢,都要接触了解啊,毕竟它很有可能会干掉百分之八九十的APP。 http://www.codingke.com/v/2231-lesson-41-career  给大家推荐一个小程序教学视频。
初学51单片,写的几个小程序
#include #include "delay.h" #include #define LEDPROT P0 /*第一种流水灯 unsigned char leddate[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main() { unsigned char i=0;    while(1)
matable控制精度的程序
matable控制精度的小程序,主要是求解过程中对求解结果精度的要求
安卓入门小程序
一:程序控制文本赋值 接着上节修改工程文件,在配置文件中添加一个文本和按钮<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"
初学者必须学会的Android小程序
初学者必须学会的Android小程序
Java新手入门第一个小程序(学生管理系统)
今天来写一写学习Java前期自己练习的一个小项目——学生管理系统。写这个系统之前我们需要有一个类来规范学生对象,学生类一共有学号、姓名、邮箱、成绩、生日五个属性。其次我们还需要准备一个班级类和一个老师类,老师类有工号、姓名、所授课程三个属性。班级类则只需要一个班主任和一帮学生即可。既然是前期的练习自然涉及不到数据库,所有的数据都是写在代码里头供运行测试的,这里大家不需要太过纠结。学生类import...