java转义字符【转】

来源:互联网 发布:电信2g网络和4g络区别 编辑:程序博客网 时间:2024/06/08 10:55

软回车(SoftReturn):软回车是在字处理程序中作为自动移行功能的一部分自动插入的,也叫换行符,在word中看不见。如果文本一行的长度超过文档所定义的右边距时,即当前行没有足够的空间放置下一个字符时,文字处理软件将在这一行文本的末尾自动插入一个软回车符,文本另起一行。这个软回车符是由编辑程序自动产生的,叫做软回车。当重新设置文档的右边距并做重新排版时,软回车出现的位置就会自动改变。 
在网页中按Shift+Enter(回车键)为软回车。↓

硬回车(HardReturn):硬回车是段落标记,表示一个段落,也称回车符。硬回车是用户键入的回车符,它是实际插入正文的符号。它通常包括两个字符,即分别表示回车和换行。如果要在文本段落的末端换行或者在文本中增加空行,可按回车键。硬回车是文件的一部分,它不能自动消除,除非删除它。 
按Enter(回车键)为硬回车。

简言之,软回车是字处理软件为了换行自动插入的,而硬回车是用户按Enter键键入的回车符,是实际插入正文的符号,是文件的一部分。

java转义字符:
\ddd 1到3位8进制数据所表示的字符(ddd)
\uxxxx 1到4位16进制数所表示的字符(xxxx)
\' 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格 

java中可以用两种方法表示硬回车:
一.\r\n
二.System.getProperty("line.separator")


大家恐怕都发现过这样一个现象,就是在Windows下编辑过的C代码到Linux环境下去打开的时候,会出现很多莫名其妙的黑色方块,它们出现的位置是在代码的每行换行处。这是为什么呢?
 
开始并不怎么留意这些问题,因为它并没有影响到程序的编译过程。但是当我使用Matlab生成一些测试数据文件(要求:每个数据占据一行。我在Matlab数据输出时通过加入'\n'来进行分隔),并使用Windows下面的记事本打开时,发现数据间并非是使用回车换行作为分隔的,而是使用一个个黑色的小块,但更不凑巧的就是后续使用这些数据时必须使用换行作为分隔,而不认这些黑色的小块。我晕,6400个数据,也就是6400个小黑块,我不可能一个个的人为修改吧。
 
这下没有什么捷径或者通过忽略来处理了,我必须对其进行修改。
 
网上搜索了半天,终于搞明白了。在Windows系统中,换行是用两个字符来表示的,即回车加换行(对应ASCII码为13和10);而在Linux或者Unix中,换行只需要一个字符就搞定啦,也就是换行符(对应ASCII码为10)。而我们常用的‘\n’只是对应ASCII10,所以使用Windows下的记事本打开时就只能显示一个黑色的小块在相应的位置,而不是我们预想的回车换行。
 
原因找到了,编写一小段C代码,将ASCII-10改为ASCII-(13+10),再使用记事本打开,讨厌的黑色方块就消失啦!

0 0
原创粉丝点击