[JAVA · 0基础]:3.转义字符
定义
全部的ASCII码都能够用“\”加数字(通常是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,由于后面的字字符,都不是它本来的ASCII字符意思了。
常见转移字符的含义表:
很多字符都有对应的转义字符序列。包含单引號(\')、换行(\n)、制表符(\t)和反斜线(\\)。你能够在字符字面常量和字符串字面常量中使用转义字符序列。
执行机制
实际上。你能够通过使用被称为八进制转义字符的特殊类型的转义字符序列,将不论什么ASCII字符置于一个字符串字面常量或一个字符字面常量中。可是最好是尽可能地使用普通的转义字符序列。
普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,由于与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。
ASCII是字符集的最小公共特性集。它仅仅有128个字符,可是Unicode有超过65,000个字符。一个Unicode转义字符能够被用来在仅仅使用ASCII字符的程序中插入一个Unicode字符。
一个Unicode转义字符精确地等价于它所表示的字符。
Unicode转义字符被设计为用于在程序猿须要插入一个不能用源文件字符集表示的字符的情况。它们主要用于将非ASCII字符置于标识符、字符串字面常量、字符字面常量以及凝视中。偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明白地标识当中的某一个,从而添加程序的清晰度。
总之,在字符串和字符字面常量中要优先选择的是转义字符序列。而不是Unicode转义字符。Unicode转义字符可能会由于它们在编译序列中 被处理得过早而引起混乱。
不要使用Unicode转义字符来表示ASCII字符。
在字符串和字符字面常量中,应该使用转义字符序列;对于除这些字面常量之 外的情况,应该直接将ASCII字符插入到源文件里。
释于生活
转义字符,来源于生活。生活中关于转义字符的解释是常态、easy理解的。以下是结合生活,关于部分转义字符的理解。感觉蛮不错的解释:
/r 回车
其含义是倒回到本行的开头,类似于生活中的倒车:计算机有西方人发明。计算机的专家们更是热爱生活。当中 回车 一词,更是符合其原本含义,生活中的倒车。
比如,James早上将车开出车库后停下。发现今天是周日。定好的去跑步,那么James就须要再将车倒回车库原处。
切换到计算机环境中,回车表示光标回到本行的行头。就是说本来光标在不断地向前输出数据(车在向前开出),可是。遇到了/ r(想起了跑步的事情)。这时就须要将此时的光标倒回到本行的开头(车回到车库的原处)。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
/b 退格
其含义是退一格。后面覆盖前一位。若后面没有。则光标在前一位闪烁:
(原)程序输出要求:12345678
(程序变化后)输出要求:123/b45678/b
(此时)输出:1245678
/t 制表符
其含义是将光标跳到下一个制表位 含义(一个制表位放8个字符):如果此时图上为输出界面(就是我们的屏幕)。事实上屏幕上也是有表的。仅仅只是我们看不到而已(是计算机的底层设计时建立的),每个位置输出一个字符,而一个制表位能够放8个字符,
如果我们输出的为:12345678ABCDEFG12345678ABCDEFG
后增加制表符变为:
123/t45678ABCDEFG/t1234567/t8ABCDEFG
则最后输出为:
123(5个空位置)(下一个制表符)45678ABC (下一个制表符)DEFG(4个空位置)(下一个制表符)1234567(1个空位置)(下一个制表符)8ABCDEFG
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
学习小结
关于JAVA中的转移字符,感觉学习起来就是一头雾水。经过业余时间的一通消化,感觉理解起来也是蛮简单的。
生活中,无处不在的场景,仅仅要肯去发掘。绝对是能够用到不论什么的职业的,生活中充满了知识和联系。计算机嘛,也是源于生活的,仅仅要多加联系生活,相信能够更好地理解!
[JAVA · 0基础]:3.转义字符的更多相关文章
- [JAVA · 0基础]:19.容器类
概述 容器 就是存放数据的一个集合 (java提供了一个接口专门去约束我们容器的实现类) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L ...
- [JAVA · 0基础]:16.经常使用类
基本类型包装 为什么须要包装类? JAVA并非纯面向对象的语言.Java语言是一个面向对象的语言.可是Java中的基本数据类型却是不面向对象的.可是我们在实际使用中常常须要将基本数据转化成对象,便于操 ...
- [JAVA · 0基础]:11.终结者-final
关于finalkeyword的总结,是非常easy学习和掌握的,大致分为用final修饰的符号常量.类.方法.属性四部分.而这四部分的内容也是我们必须掌握的,非常有用.在项目中常常来利用finalke ...
- _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)
博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- JAVA思维导图系列:多线程0基础
感觉自己JAVA基础太差了,又一次看一遍,已思维导图的方式记录下来 多线程0基础 进程 独立性 拥有独立资源 独立的地址 无授权其它进程无法訪问 动态性 与程序的差别是:进程是动态的指令集合,而程序是 ...
- 0基础的小白怎么学习Java?
自身零基础,那么我们应该先学好Java,首先我们来了解下Java的特性: Java语言是简单的 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java.另一方面,Jav ...
- Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观
Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java ...
- Java多线程系列--“基础篇”11之 生产消费者问题
概要 本章,会对“生产/消费者问题”进行讨论.涉及到的内容包括:1. 生产/消费者模型2. 生产/消费者实现 转载请注明出处:http://www.cnblogs.com/skywang12345/p ...
- Java多线程系列--“基础篇”04之 synchronized关键字
概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...
随机推荐
- -bash: wget 未找到命令的解决办法
在Linux操作系统中,我们会经常要用到wget下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性. 在linux中使用wget时,若报-bash: wget: comman ...
- java数组简单逻辑代码
package cuteSnow; public class HelloWorld { // 遍历数组里面的每个数字 public static void print(int[] array){ St ...
- Qt之设置应用程序图标
简述 应用程序图标,通常显示在应用程序的顶层窗口的左上角,通过调用QWindow:setWindowIcon()函数来实现. 为了改变可执行程序文件本身的图标,因为它被呈现在桌面上,它必须采用另一种依 ...
- POJ 1671
其实求的是BELL数,即前N个第二类斯特林数的和. 一首诗有n行,每一行有一种韵律,问这首诗总共可能有多少种韵律排列.如4行,则所有的15种情况为:aaaa, aaab, aaba, aabb, aa ...
- 每天学点Python之comprehensions
每天学点Python之comprehensions 推导式能够简化对数据的处理,让代码简洁的同一时候还具有非常高的可读性.这在Python中非经常见. 列表推导式 通过列表推导式能够对列表中的全部元素 ...
- 纯文本中识别URI地址并转换成HTML
问题 有一段纯文本text, 欲将其插入DOM节点div中. text中可能有超链接, 邮件地址等. 假设有, 识别之. 分析 假设仅仅是纯文本, 插入div中, 仅仅要将div.innerText设 ...
- MVC传递数据-传递对象或对象集合
前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合.比方.将表格中的一行数据作为一个对象提交.或将多行数据作为一个集合提交到Controller. 回想 从View ...
- ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了
看下图代码: report z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form 和 function zbapi_test , 这两 ...
- 改动android 系统时间
命令如 date -s "yyyymmdd.[[[hh]mm]ss]" 直接在CRT上执行,举例:date -s "20120801.120503" 但在adb ...
- jquery时间格式化插件
插件的代码: (function($){ $.formatDate = function(pattern,date){ //假设不设置,默觉得当前时间 if(!date) date = new Dat ...