这期内容当中小编将会给大家带来有关在JAVA中如何对字符进行转义,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
具体如下:
1。八进制转义序列:\ + 1到3位5数字;范围& # 39;\ 000 & # 39;~ & # 39;\ 377 & # 39;,
\ 0:空字符
2。Unicode转义字符:\ u +四个十六进制数字;0 ~ 65535,
\ u0000:空字符
3。特殊字符:就3个,
\“:双引号,
\ & # 39;:单引号,
\ \:反斜线
4。控制字符:5个
\ & # 39;单引号字符
\ \反斜杠字符
\ r回车
\ n换行
\ f走纸换页
\ t横向跳格
\ b退格
点的转义:。==比;u002E
美元符号的转义:$==比;u0024
乘方符号的转义:^==比;u005E
左大括号的转义:{==比;u007B
左方括号的转义:[==比;u005B
左圆括号的转义:(==比;u0028
竖线的转义:|==比;u007C
右圆括号的转义:)==比;u0029
星号的转义:*==比;u002A
加号的转义:+==比;u002B
问号的转义:,# 63;==比;u003F
反斜杠的转义:==比;u005C
下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢?
公共类EscapeRout { 公共静态void main (String [] args) {//\ u0022是双引号的Unicode转义字符 System.out.println (“\ u0022.length () + \ u0022b" . length ()); } } 公开课EscapeRout { 公共静态void main (String [] args) {//\ u0022是双引号的Unicode转义字符 System.out.println (“\ u0022.length () + \ u0022b" . length ()); } }
对该程序的一种很肤浅的分析会认为它应该打印出26日,因为在由两个双引号“\ u0022.length () + \ u0022b"标识的字符串之间总共有26个字符。
稍微深入一点的分析会认为该程序应该打印16日因为两个Unicode转义字符每一个在源文件中都需要用6个字符来表示,但是它们只表示字符串中的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。如果你运行这个程序,就会发现事情远不是这么回事。它打印的既不是26日也不是16,而是2 .
理解这个谜题的关键是要知道:Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。编译器在将程序解析成各种符号之前,先将Unicode转义字符转换成为它们所表示的字符(JLS 3.2)。因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量(“a")的结束引号,而第二个Unicode转义字符将作为另一个单字符字符串字面常量(“b")的开始引号。程序打印的是表达式“a" . length () +“b" . length(),即2 .
如果该程序的作者确实希望得到这种行为,那么下面的语句将要清楚得多:
System.out.println (“a" . length () +“b" . length ());
更有可能的情况是该作者希望将两个双引号字符置于字符串字面常量的内部。使用Unicode转义字符你是不能实现这一点的,但是你可以使用转义字符序列来实现(JLS 3.10.6)。表示一个双引号的转义字符序列是一个反斜杠后面紧跟着一个双引号(\”)。如果将最初的程序中的Unicode转义字符用转义字符序列来替换,那么它将打印出所期望的16(错误,应该是14日不知道是怎么会出来16):
System.out.println (“\“; . length () + \“b" . length ());
许多字符都有相应的转义字符序列,包括单引号(\ & # 39;),换行(\ n),制表符(\ t)和反斜线(\ \)。你可以在字符字面常量和字符串字面常量中使用转义字符序列。
实际上,你可以通过使用被称为八进制转义字符的特殊类型的转义字符序列,将任何ASCII字符置于一个字符串字面常量或一个字符字面常量中,但是最好是尽可能地使用普通的转义字符序列。
普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,因为与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。
ASCII是字符集的最小公共特性集,它只有128个字符,但是Unicode有超过65000个字符。一个Unicode转义字符可以被用来在只使用ASCII字符的程序中插入一个Unicode字符。一个Unicode转义字符精确地等价于它所表示的字符。
Unicode转义字符被设计为用于在程序员需要插入一个不能用源文件字符集表示的字符的情况。它们主要用于将非ASCII字符置于标识符,字符串字面常量,字符字面常量以及注释中。偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明确地标识其中的某一个,从而增加程序的清晰度。