按下Enter键会显示一行你刚输入的字符,我把'\r'注释掉,再执行程序时,如果我输入是end,并没有返回到OS,程序如下,我知道在windows中按下Enter后就等于同时按下了'\r'和'\n',请问回车与换行有啥区别呢,在程序中一定要分开对待吗?程序功能:输入一个字符串,按下Enter后回显在屏幕上,再输入下一个字符串,直到输入end为止。
class test{
public static void main(String[] args){
int index=0;
byte[] buffer=new byte[1000];
String str=null;
int ch=0;
System.out.println("Please input some string:");
while(true){
try{
ch=System.in.read();
}catch(Exception e){
e.printStackTrace();
}
switch(ch){
case '\r': break;      //回车
case '\n':             //换行
str=new String(buffer,0,pos);
if(str.equalsIgnoreCase("end")) return;
else{
System.out.println(str);
index=0;
break;
}
default:
buffer[index++]=(byte)ch;
}
}
}
}

解决方案 »

  1.   

    感谢楼上,这个我知道,我想知道,为啥在程序中要分别处理这两个标识,我们好像只输入Enter啊,我注释了'\r',程序就没有应有的反映,原因呢?                                                               多谢了!
      

  2.   

    这和操作系统有关,在Windows操作系统中,就存在回车符号、换行符号这样的说法,当我们输入Enter的时候,可以在程序中进行控制,解析为回车换行符,就这个道理。
      

  3.   

    来晚了,同意"lyj830223(少年游) "的说法
      

  4.   

    说enter是回车键,实际上,乔出去后应该是回车+换行了吧反正编程的时候,回车和换行是两个概念===============================
        CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
    软件!
        界面: http://qqwwee.com/
        下载: http://qqwwee.com/csdn.rar 包含源代码
      

  5.   

    港看到一个:linux下:回车win下:回车+环行