- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java转义字符
java转义字符
一.为什么要使用转义字符?
1、 HTML中、、等都有特殊的含义(,,用于链接签,用于转义),不能够直接使用,这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,需要进行转义。
2、 转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符的原因有两个:第一、“”和“”类符号已经用来表示HTML标签,因此就不能直接当做文本中的符号来使用。为了在HTML文档中使用这些符号,这就需要定义它们的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写规则。第二、有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
二、常用的HTML转义字符列表
最常用的字符实体 说明 实体编号 半方大的空白 ensp; 全方大的空白 emsp; 空格 nbsp; 小于 lt; 大于 gt; 符号 amp; 双引号 quot; 版权 copy; 乘号 times; 除号 divide; 转义序列 \b 退格 \f 走纸换行 \n 回车 \r 换行 \t 横向跳格 \ 单引号 \ 双引号 \\ 反斜杠
1.八进制转义序列:\ + 1到3位5数字;范围\000~\377
\0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
\u0000:空字符
3.特殊字符:就3个
\:双引号
\:单引号
\\:反斜线
4.控制字符:5个
\ 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. == u002E
美元符号的转义:$ == u0024
乘方符号的转义:^ == u005E
左大括号的转义:{ == u007B
左方括号的转义:[ == u005B
左圆括号的转义:( == u0028
竖线的转义:| == u007C
右圆括号的转义:) == u0029
星号的转义:* == u002A
加号的转义:+ == u002B
问号的转义:? == u003F
反斜杠的转义: == u005C
======================================================================
下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢?
Java代码
public class EscapeRout{
public static void main(String[] args){
// \u0022 是双引号的Unicode转义字符
System.out.println(a\u0022.length()
+\u0022b.length());
}
}
public class EscapeRout{
public static void main(String[] args){
// \u0022 是双引号的Unicode转义字符
System.out.println(a\u0022.length()
+\u0022b.length());
}
}
对该程序的一种很肤浅的分析会认为它应该打印出26,因为在由两个双引号a\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。
如果该程序的作者确实希望得到这种行为,那么下面的语句将要清楚得多:
Java代码
System.out.println(a.length()+b.len
文档评论(0)