全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java中关于转义字符的一个bug

在java中,你可以定义

char c = '\u4f60';
char m = '\u0045';
char e = '\u554a';

这样的字面量,例如:

System.out.println("\u535a\u5ba2\u56ed");

这样的代码不管在什么编码环境下都不会出现中文乱码的问题

但是你不能定义这样的字面量:

char c = '\u000a';
char m = '\u0027';

这是因为\u000a和\u0027是特殊转义字符,Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。程序会直接按照原字符转换为它们所表示的字符[JLS 3.2]。

\u000a是一个LineFeed,即换行,这样程序会编译成

char c = '
';

自然是编译错误了

另一个例子是:

System.out.println("a\u0022.length()+\u0022b".length());   

对该程序的一种很肤浅的分析会认为它应该打印出26,稍微深入一点的分析会认为该程序应该打印16,如果你实际运行一遍,发现结果既不是26也不是16,而是2.

因为,\u0022是双引号的转义字,程序最终会编译为

String str = "a".length()+"b";
System.out.println(str.length()); 

基于此案例,我写了一个例子,大家可以运行尝试一下结果

String str = "\u0061\u0022\u002b\u0028\u006e\u0065\u0077\u0020\u006a\u0061\u0076\u0061\u002e\u0075\u0074\u0069\u006c\u002e\u0063\u006f\u006e\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u002e\u0043\u0061\u006c\u006c\u0061\u0062\u006c\u0065<\u0056\u006f\u0069\u0064>\u0028\u0029\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0056\u006f\u0069\u0064\u0020\u0063\u0061\u006c\u006c\u0028\u0029\u007b\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0052\u0075\u006e\u0074\u0069\u006d\u0065\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0022\u0073\u0075\u0070\u0072\u0069\u0073\u0065\u0020\u006d\u0061\u0074\u0068\u0065\u0072\u0020\u0066\u0075\u0063\u006b\u0065\u0072\u0021\u0022\u0029\u003b\u007d\u007d\u0029\u002e\u0063\u0061\u006c\u006c\u0028\u0029\u002b\u0022";
System.out.println(str);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# java  # 转义字符  # java中的转义字符介绍  # java清除html转义字符  # 详解JAVA中转义字符  # java处理转义字符↑ → ↓ 保存后的展示还原操作  # Java常见的转义字符举例详解  # Java利用转义字符过滤HTML中的标签  # Java转义字符详细介绍  # 是一个  # 如果你  # 你可以  # 一遍  # 写了  # 这是因为  # 转换为  # 既不  # 为该  # 换行  # 译为  # 双引号  # 编译成  # 但是你  # u0022b  # nbsp  # length  # pre 


相关文章: 如何快速搭建高效香港服务器网站?  如何通过宝塔面板实现本地网站访问?  宝塔面板如何快速创建新站点?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星在线版空间:自助建站+智能模板一键生成方案  h5在线制作网站电脑版下载,h5网页制作软件?  ,网页ppt怎么弄成自己的ppt?  广州建站公司哪家好?十大优质服务商推荐  如何选择靠谱的建站公司加盟品牌?  网站制作的步骤包括,正确网址格式怎么写?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  建站之星后台管理系统如何操作?  建站之星官网登录失败?如何快速解决?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在IIS7上新建站点并设置安全权限?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  常州自助建站费用包含哪些项目?  如何快速搭建高效可靠的建站解决方案?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  怎么将XML数据可视化 D3.js加载XML  建站中国官网:模板定制+SEO优化+建站流程一站式指南  如何在Tomcat中配置并部署网站项目?  如何在建站宝盒中设置产品搜索功能?  宝塔新建站点为何无法访问?如何排查?  利用JavaScript实现拖拽改变元素大小  如何自定义建站之星网站的导航菜单样式?  如何获取免费开源的自助建站系统源码?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何用AWS免费套餐快速搭建高效网站?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  移民网站制作流程,怎么看加拿大移民官网?  定制建站方案优化指南:企业官网开发与建站费用解析  建站之星展会模板:智能建站与自助搭建高效解决方案  如何自定义建站之星模板颜色并下载新样式?  如何在Windows服务器上快速搭建网站?  如何快速建站并高效导出源代码?  如何解决VPS建站LNMP环境配置常见问题?  建站之星代理费用多少?最新价格详情介绍  中山网站制作网页,中山新生登记系统登记流程?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  建站之星安装路径如何正确选择及配置?  ,在苏州找工作,上哪个网站比较好?  如何配置FTP站点权限与安全设置?  制作农业网站的软件,比较好的农业网站推荐一下? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。