'\r'与'\n'到底有何区别啊?请高手指教!
在判断键盘输入字符是否是回车符,我们用'r'与'n'——一直一位它们是一样的。
但现在好像遇到一些问题了。如下程序:
//程序目的试从屏幕读入字符,放入vector中
public class read {
public static void main (String[] args) {
Vector v=new Vector();
char ch;
int i;
while (true){
try {
ch=(char)System.in.read();
if (ch!='\n') //在这里用'r'与'n'有区别了
v.addElement(new Character(ch));
else break;
} catch (IOException e) {e.printStackTrace();}
}
System.out.println(v);
i=v.size();
System.out.println(i);
}
}
我在屏幕中输入asdf(回车)
如用'\r',打印出来是"[a, s, d,f]",v.size是4;
但如果用'\n',打印出来是"]a, s, d,f,"(这个可能我的windows也有些问题,打印出来"[a, s, d,f,]"应该合理些),而v.size是5;
这就有点问题了。跟踪调试看到后者是把回车符也加入到v中来了,也就是说if语句判断的时候没有进入break;但既然如此,程序为什么能正常结束呢?等待键盘输入应该合理一些吧。
有一下三点疑问:
1)'\r'与'\n'到底有何区别?
2)打印出来"[a, s, d,f]"是不是套用了什么输出格式?能控制吗?没装Linux系统,有的朋友帮忙试试在Linux下是不是也这样。
3)在用'\n’的时候程序为什么能正常结束运行呢?