定义
全部的ASCII码都能够用“\”加数字(通常是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,由于后面的字字符,都不是它本来的ASCII字符意思了。
常见转移字符的含义表:
很多字符都有对应的转义字符序列。包含单引號(\')、换行(\n)、制表符(\t)和反斜线(\\)。你能够在字符字面常量和字符串字面常量中使用转义字符序列。
执行机制
普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,由于与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。
ASCII是字符集的最小公共特性集。它仅仅有128个字符,可是Unicode有超过65,000个字符。一个Unicode转义字符能够被用来在仅仅使用ASCII字符的程序中插入一个Unicode字符。
一个Unicode转义字符精确地等价于它所表示的字符。
Unicode转义字符被设计为用于在程序猿须要插入一个不能用源文件字符集表示的字符的情况。它们主要用于将非ASCII字符置于标识符、字符串字面常量、字符字面常量以及凝视中。偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明白地标识当中的某一个,从而添加程序的清晰度。
总之,在字符串和字符字面常量中要优先选择的是转义字符序列。而不是Unicode转义字符。Unicode转义字符可能会由于它们在编译序列中 被处理得过早而引起混乱。
不要使用Unicode转义字符来表示ASCII字符。
在字符串和字符字面常量中,应该使用转义字符序列;对于除这些字面常量之 外的情况,应该直接将ASCII字符插入到源文件里。
释于生活
转义字符,来源于生活。生活中关于转义字符的解释是常态、easy理解的。以下是结合生活,关于部分转义字符的理解。感觉蛮不错的解释:
/r 回车
其含义是倒回到本行的开头,类似于生活中的倒车:计算机有西方人发明。计算机的专家们更是热爱生活。当中 回车 一词,更是符合其原本含义,生活中的倒车。
比如,James早上将车开出车库后停下。发现今天是周日。定好的去跑步,那么James就须要再将车倒回车库原处。
切换到计算机环境中,回车表示光标回到本行的行头。就是说本来光标在不断地向前输出数据(车在向前开出),可是。遇到了/ r(想起了跑步的事情)。这时就须要将此时的光标倒回到本行的开头(车回到车库的原处)。/b 退格
其含义是退一格。后面覆盖前一位。若后面没有。则光标在前一位闪烁:
(原)程序输出要求:12345678
(程序变化后)输出要求:123/b45678/b
(此时)输出:1245678/t 制表符
其含义是将光标跳到下一个制表位 含义(一个制表位放8个字符):如果此时图上为输出界面(就是我们的屏幕)。事实上屏幕上也是有表的。仅仅只是我们看不到而已(是计算机的底层设计时建立的),每个位置输出一个字符,而一个制表位能够放8个字符,
如果我们输出的为:12345678ABCDEFG12345678ABCDEFG
后增加制表符变为:
123/t45678ABCDEFG/t1234567/t8ABCDEFG
则最后输出为:
123(5个空位置)(下一个制表符)45678ABC (下一个制表符)DEFG(4个空位置)(下一个制表符)1234567(1个空位置)(下一个制表符)8ABCDEFG
学习小结
关于JAVA中的转移字符,感觉学习起来就是一头雾水。经过业余时间的一通消化,感觉理解起来也是蛮简单的。
生活中,无处不在的场景,仅仅要肯去发掘。绝对是能够用到不论什么的职业的,生活中充满了知识和联系。计算机嘛,也是源于生活的,仅仅要多加联系生活,相信能够更好地理解!