转义字符\n和\r的区别

我知道一个是回车一个是换行,但举个例子:
String s1 = "哈哈\n呵呵";
System.out.print (s1) ;

String s1 = "哈哈\r呵呵";
System.out.print (s1) ;
这俩的输出结果是一样的呀,都是一行哈哈一行呵呵,那这两个字符的作用有什么区别呢?

转义字符\n和\r只有一个区别:就是换行方式不同。

\n 软回车:

在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r 的效果。

在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

\r 软空格:

在Linux、unix 中表示返回到当行的最开始位置。

在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。

例如:

代码

print u"你好吗?\n朋友"print u"——分隔线——"print u"你好吗?\r朋友"

输出结果:

你好吗?

朋友

——分隔线——

朋友吗?

扩展资料

正确理解转义字符\

strlen与sizeof的意义:

sizeof是C/C++中的一个关键字,不是函数,简单的说其作用就是返回一个对象或者类型所占的内存字节数。

strlen()是一个函数,求一个字符串的有效长度,strlen函数的结束条件是遇到\0结束计数。

用sizeof求一个字符串分为几种情况:

1、\后面一般跟的是八进制数如 \000 \377 \378

2、\也可跟16进制如\x11 \xff

3、\后面跟的字符如\a \A \8

如下字符串举例:

"\0000" 可以看成\000 0 \0 ,sizeof 值为3,第一个\000代表ascii第一个元素(NULL空操作),第二个0是字符0,最后红色的\0是系统自带\0(他实际也是\0,\00,\000 也就是ASCII所代表的第一个元素NULL)用于结束字符串。所以sizeof就是3。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-11

一、含义不同:

\r 回车 -- Carrige Return, ASCII 值 0x0D

\n 新行,换行 -- New-Line ASCII 值 0x0A

二、表示不同:

回车 -- 输出位置移动到行首,不换行。

新行 -- 输出位置移动到下一行行首。

\n 软回车:

在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r的效果。

在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

组成:

转义字符串(Escape String),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

比如,要显示小于号(<),就可以写 &lt; 或者 < 。

用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

以上内容参考:百度百科-转义字符

本回答被网友采纳
第2个回答  2014-09-30
\n 是换行,\r是回车;Java测试你上面的代码,输出为:
哈哈
呵呵
呵呵
\r会覆盖前面的内容
第3个回答  推荐于2017-09-18
1、\n 软回车:
在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r
的效果。
在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

2、\r 软空格:
在Linux、unix 中表示返回到当行的最开始位置。
在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。追问

那在windows里写java时这俩的作用是一样的吗?

追答

在java中:

\r 回车就是回到当前行的行首。
\n 回车并换行另起一行,并回到另起一行的行首。

追问

但是在我举的例子里它们输出都是显示换行呀

追答

对都是换行,但你把2次的结果保存成文件,用记事本打开看看效果一样吗? 显示效果一样说明兼容行好都能识别出来

本回答被提问者和网友采纳
相似回答