Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29308300
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2010-04-08 21:08:53

从下面的代码说起:
public class A{
    public static void main(String[] args) {
        System.out.println("test\r123");
    }
}
如果在IDE里面输出:
test
123
如果在命令行输出:
123t

这段代码的解释:
先输出了:test
然后遇到\r
光标被重置于行的开始处,也就是字母t的前面,
然后又输出了123
这时123将原来的tes覆盖掉了!
所以最后的结果就是:123t


历史知识:
回车换行符,是2个符。
一个回车,一个换行。
一个是控制屏幕或者从键盘的Enter键输入。 另一个是控制“打印机”!

0d0a问题,是打印机时代留下的问题,如果用过没有屏幕的,只有卷纸输出的机器,就可以知道,
如果向打印机发送一个回车符是没有用的,只有发换行符才有用。

笔记:
\n 表示的是换行(newline)。这种是针对没有电脑屏幕的年代。打印机认识这个换行符
\r 表示的是回车(return)。 这种是针对回车。而打印机根本不认识回车符!

如今我们在DOS-Windows的系统里需要区分"\r\n”和“\n”,但在Unix中只有"\n”。

结论:所以为什么JAVA在\n 却不是回车符了。


\r 是回车,return ASCII = 0x13
\n 是换行,newline ASCII = 0x0a


windows下\r\n,linux或unix下\n

结论:

在DOS中实现换行操作
public class A{
public static void main(String[] args) {
System.out.println("test\n\r123");
}
}


 


阅读(668) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~