黑马程序员技术交流社区

标题: java,\n\r的有什么区别?一个小程序搞定。请高手指点! [打印本页]

作者: tiandaochouqin    时间: 2015-12-9 10:51
标题: java,\n\r的有什么区别?一个小程序搞定。请高手指点!
本帖最后由 tiandaochouqin 于 2015-12-13 19:31 编辑

本人新手,交流一点学习心得,还请大家多多指教。
---背景----
曾经一直困惑\n\r的区别。似乎都是换行功能,可是也没发现好的解释。今天遇到java键盘输入输出的问题,再一次遇到\n\r,终于来了灵感,综合在网上查询,还有自己编写的小程序,搞清了它们的区别。
------我是华丽的分割线---------------
一:解释
1.\r 的全称----> Carriage Return,中文:回车;---->回到本行的首位;(个人看法:类似键盘"home"键功能

2.\n 的全称----> New Line, 中文:换行;---->到下一行首位;(个人看法:类似键盘“Enter”键功能
使用System.getProperty("line.separator")来获取当前OS的换行符
针对不同的系统:苹果系统Mac\r ,Unix、Linux系统\n ,Windows系统\r\n。


二:上程序验证
-------java简单程序区分即可看出--------
//环境:win7,Editplus;
class Test2
{
public static void main(String[] args)
{
System.out.println("_________________________\n");
System.out.println("Hello World!---->1"+"\n\rabc");
System.out.println("Hello World!---->2"+"\r\nabc");
System.out.println("Hello World!---->3"+"\rabc");
System.out.println("Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");
int i=12345678;
System.out.println(i+"Hello World!---->1"+"\n\rabc");
System.out.println(i+"Hello World!---->2"+"\r\nabc");
System.out.println(i+"Hello World!---->3"+"\rabc");
System.out.println(i+"Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");

String s1="ttt";
String s2=new String("kkk");
System.out.println(s1+"Hello World!---->1"+"\n\rabc");
System.out.println(s1+"Hello World!---->2"+"\r\nabc");
System.out.println(s1+"Hello World!---->3"+"\rabc");
System.out.println(s1+"Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");
System.out.println(s2+"Hello World!---->1"+"\n\rabc");
System.out.println(s2+"Hello World!---->2"+"\r\nabc");
System.out.println(s2+"Hello World!---->3"+"\rabc");
System.out.println(s2+"Hello World!---->4"+"\nabc");
}
}
----------编译运行情况-------------------
_________________________

Hello World!---->1
abc
Hello World!---->2
abc
abclo World!---->3
Hello World!---->4
abc
_________________________

12345678Hello World!---->1
abc
12345678Hello World!---->2
abc
abc45678Hello World!---->3
12345678Hello World!---->4
abc
_________________________

tttHello World!---->1
abc
tttHello World!---->2
abc
abcHello World!---->3
tttHello World!---->4
abc
_________________________

kkkHello World!---->1
abc
kkkHello World!---->2
abc
abcHello World!---->3
kkkHello World!---->4
abc

有图有真相:

-------------------------------------------
三:总结:

\r\n或\n\r没有区别,\n也等同于:\r\n或\n\r;
\r单独使用,回到本行行首,替换掉对应的字符。






作者: 1379号监听员    时间: 2015-12-9 11:46
666666,一直想做的事被你做了,我就懒得去敲啦哈哈哈哈哈
作者: Weidan    时间: 2015-12-9 12:52
收藏起来了。
作者: xiaoxiao2015    时间: 2015-12-18 23:30
老徐,加油!
作者: 唐洪超    时间: 2015-12-19 11:23
不错,这点你做的不错,鼓励下
作者: 李放    时间: 2015-12-19 12:10
赞!~支持楼主!
作者: 平凡D世界    时间: 2015-12-19 19:25
66666666666666666
作者: 正阳门下    时间: 2015-12-19 19:31
楼主果然厉害
作者: Jerson_ZF    时间: 2015-12-19 21:32
见识了,给力
作者: 乐林荫    时间: 2015-12-22 17:43
6666666666666666
作者: 李勋@1211    时间: 2015-12-22 19:46
6666666  涨姿势了!

作者: lixy    时间: 2015-12-22 20:04
一直提到回车换行,就没深究过。楼主赞
作者: luyang18    时间: 2015-12-22 22:53
6666666666666涨知识了!!!
作者: 意念痴心灬戒贪    时间: 2015-12-23 00:07
果断收藏~!~!
作者: 蔡泽杰    时间: 2015-12-23 00:23
刚好我也有这困惑
作者: VisionDo    时间: 2015-12-23 10:07
API里面有说过,官方建议使用newLine()
作者: birdy    时间: 2015-12-23 11:20
学习了 谢谢分享~!
作者: huaduwuzhe    时间: 2015-12-23 11:38
println中ln就是换行
作者: 鳌少宝    时间: 2015-12-23 12:56
不错 , 总结的不错 ,点个赞
作者: 雨非飞飞    时间: 2015-12-23 13:34
挺善于总结啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2