public class ReadLine {
public static void main(String [] args)
{
byte buf[] = new byte[1024];
String strInfo = null;
int pos = 0;
int ch = 0;
System.out.println("please enter info,input bye for exit:");
while(true)
{
try
{
ch = System.in.read();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
switch(ch)
{
case '\r':
break;
//System.out.println('\r');
case '\n':
strInfo = new String(buf,0,pos);
if(strInfo.equals("bye"))
return;
else
System.out.println(strInfo);
pos = 0;
break;
default:
buf[pos++] = (byte)ch;
}
}
}
}
程序里面加入case '\r': break; 这句有什么用啊???为什么把这句注释掉,结果会多一个换行
\r和\n有什么区别,在键盘上输入的enter键是代表\r还是\n啊???当在键盘上输入enter的时候程序会跳到case '\n':
strInfo = new String(buf,0,pos);
if(strInfo.equals("bye"))
return;
else
System.out.println(strInfo);
pos = 0;
break;
那是不是enter键就代表\n啊? 那这个时候这个\r又有什么用啊???为什么执行到\r要break,在键盘上怎么输入\r???彻底搞糊涂了。。。
我想知道 当程序运行后 我输入 123 然后enter键,程序是怎么处理的。。。特别是怎么处理case '\r'和case '\n'的!当程序执行enter键的时候,是先被识别为'\r'然后break,接着又被识别为'\n'嘛??谢谢
请高人指点