接下来的测试均在CMD中完成,请不要放在IDE开发工具(如eclipse,myeclipse等)中运行
- System.out.println("abc\rabc");//结果:abc,这个就是楼主的例子,因为\r前后的内容一样,看不出太大效果
复制代码- System.out.println("abc\r12");//结果:12c
复制代码
先讲一下我对\r \n \r\n这三个理解
\r return 回车,(将光标移动到行首)
\n newLine换行,(光标移动到下一行)
根据我的理解,那么第一个例子中先打印出了abc,遇到\r之后光标移动到行首,后面的abc覆盖掉了前面的abc。第二个例子中先打印abc,遇到\r之后光标移动到行首,后面的12覆盖掉了前面的ab,所以打印结果是12c
- System.out.println("abc\nabc");//结果如下:
复制代码
这个不多解释,打印abc,遇到\n光标移动到下一行接着打印abc
- System.out.println("abc\r\nabc");结果如下:
复制代码 打印abc,遇到\r光标回到行首,遇到\n光标移动到下一行,打印abc
在eclipse中测试\r \n \r\n三者的运行情况全都一样,都进行了换行的操作,我想应该是开发工具做了某些优化的原因吧,没有进行过多测试,但是在实际开发中还是写\r\n比较好,至少不会错。
如果楼主想要了解更多的还是去百度下吧,援引一下一些经典的回答
回车换行符,是2个符。
一个回车,一个换行。
一个是控制屏幕或者从键盘的Enter键输入。
另一个是控制“打印机”!
0d0a问题,是打印机时代留下的问题,LZ如果用过没有屏幕的,只有卷纸输出的机器,就可以知道,如果向打印机发送一个回车符是没有用的,只有发换行符才有用。
|