黑马程序员技术交流社区

标题: java中的换行符 [打印本页]

作者: hollywood2014    时间: 2014-10-4 21:24
标题: java中的换行符
别的不说,咱先上图


大家都知道windows中的换行符是“\r\n”,也就是说,在文本编辑器中输入这两个字符就意味着换行
但是,小弟一直困惑的是,为什么在eclipse中,
system.out.print("\n");
system.out.print("\n");
system.out.print("\r\n");
这三个句子都是换一行
还请大侠告知!

01.png (134.71 KB, 下载次数: 86)

01.png

01.png (134.71 KB, 下载次数: 94)

01.png

作者: yangyujoe    时间: 2014-10-4 21:53
\r\n只是.net
作者: 杨佳名    时间: 2014-10-5 00:20
在JAVA里,转义字符\n是“换行”的意思;\r是“回车”的意思。由于我们平时使用键盘,一按键盘上的回车键(Enter),就自动换到下一行,并且到下一行的行首。如果这里的“回车”也理解成键盘上的Enter的话,那\n和\r岂不是同一意思?

其实不然,这里的\n(换行)是“另起一行,并回到另起一行的行首”的意思;而\r是“回到当前行的行首,并且\r后的字符将取代原有的相同位置的字符。举个例子:

public class Test1{

            public static void main(String[] args){

                   System.out.println("12345\n6789");

            }

}

编译、运行后,显示结果为:

12345

6789

而如果把"12345\n6789”换为"000006\r12345",则编译、运行后的显示结果为:

123456

也就是,\r后的12345取代了原来的00000,而6保留。




作者: hike_2008    时间: 2014-10-5 09:49
二楼高手
作者: yl82846094    时间: 2014-10-5 10:39
沙发、、、、
作者: 爽朗的菜籽    时间: 2014-10-5 12:43
学习了 二楼真厉害
作者: zz_job    时间: 2014-10-5 13:59
看到过EditPlus上出现过这样的问题   因为在IDE通常都是跨平台的   所以已经考虑了不同平台的写法对结果的影响   也因为IDE通常是通过捕获系统的输出再重定向到集成的控制台   很容易实现    你用CMD控制台就不会出现这样的结果   
作者: 朴日男    时间: 2014-10-5 15:18
mark......
作者: 2406035442    时间: 2014-10-5 15:27
路过。。。。。。。。
作者: hollywood2014    时间: 2014-10-5 20:10
杨佳名 发表于 2014-10-5 00:20
在JAVA里,转义字符\n是“换行”的意思;\r是“回车”的意思。由于我们平时使用键盘,一按键盘上的回车键( ...

多谢大侠,但是为何我的结果是这样的 理论上“\r”是回到一行的开头,难道是我Eclipse设置的问题吗?





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