JAVA中的转义字符

JAVA中转义字符:

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".length());

更有可能的情况是该作者希望将两个双引号字符置于字符串字面常量的内部。使用Unicode转义字符你是不能实现这一点的,但是你可以使用转义字符序列来实现[JLS 3.10.6]。表示一个双引号的转义字符序列是一个反斜杠后面紧跟着一个双引号(\”)。如果将最初的程序中的Unicode转义字符用转义字符序列来替换,那么它将打印出所期望的16[color=red][b](错误,应该是14,不知道是怎么会出来16)[/b][/color]:

Java代码
System.out.println("a\".length()+\"b".length());

许多字符都有相应的转义字符序列,包括单引号(\')、换行(\n)、制表符(\t)和反斜线(\\)。你可以在字符字面常量和字符串字面常量中使用转义字符序列。
实际上,你可以通过使用被称为八进制转义字符的特殊类型的转义字符序列,将任何ASCII字符置于一个字符串字面常量或一个字符字面常量中,但是最好是尽可能地使用普通的转义字符序列。

普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,因为与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。

ASCII是字符集的最小公共特性集,它只有128个字符,但是Unicode有超过65,000个字符。一个Unicode转义字符可以被用来在只使用ASCII字符的程序中插入一个Unicode字符。一个Unicode转义字符精确地等价于它所表示的字符。

Unicode转义字符被设计为用于在程序员需要插入一个不能用源文件字符集表示的字符的情况。它们主要用于将非ASCII字符置于标识符、字符串字面常量、字符字面常量以及注释中。偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明确地标识其中的某一个,从而增加程序的清晰度。

总之,在字符串和字符字面常量中要优先选择的是转义字符序列,而不是Unicode转义字符。Unicode转义字符可能会因为它们在编译序列中被处理得过早而引起混乱。不要使用Unicode转义字符来表示ASCII字符。在字符串和字符字面常量中,应该使用转义字符序列;对于除这些字面常量之外的情况,应该直接将ASCII字符插入到源文件中。
----------------------------------------------------------摘自网络
如果有疑问,欢迎留言,一起讨论!!! :wink:
【Java入门基础第10天】Java常用的转义字符 阅读详情

相关推荐

PS/Ai/PR/AE等adobe出现正版弹窗提示:Your non-genuine Adobe app will be disabled soon解决办法

就是用专门的清理工具下载,清理工具在文章下方。然后新建三个空的记事本文件,重命名为 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。在该文件目录中,分别找到 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe,然后在防火墙入站规则里,阻止Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。

Q82556499的博客 1万+

java解惑 - 转义字符

下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢? [code="java"]public class EscapeRout{ public static void main(String[] args){ // \u0022 是双引号的Unicode转义字符 System.o...

justJavaC的专栏 755

告别MATLAB环境!保姆级教程:用Application Compiler把你的GUI程序打包成独立exe(2020R版本实测)

本文详细介绍了如何使用MATLAB的Application Compiler工具将GUI程序打包成独立exe文件,特别针对2020R版本进行实测。从技术原理、配置详解到打包实战与问题排查,提供完整的解决方案,帮助开发者实现无需MATLAB环境的程序分发,提升工作效率。

weixin_30571465的博客 274

汉字转码和解码的使用

# 汉字转码和解码的使用 http://www.baidu.com:8080/box/index.html?card=中国 在发送请求的时候,如果出现汉字了,最好给他转一下 1、encodeURI 转码 decodeURI 解码(escape和unescape) encodeURI('http://www.baidu.com:8080/box/index.html?card=中国') 转码:"http://www.baidu.com:8080/box/index.html?card=%E4%B8%AD%E

mwh321的博客 1888

Unity类银河战士恶魔城学习总结(P103之前 Enemy相关 , 骷髅战士,状态机,敌人状态,)

udemy的Alex银河战士恶魔城,记录我自己的学习,代码会逐渐每一p更新,仅供参考学习。

suzh1qian的博客 1633

第六章 汇川技术InoProShop入门之modbusTCP从站协议解读

摘要:ModbusTCP从站协议是Modbus协议在TCP/IP网络上的扩展,作为服务器端被动响应主站请求。它采用MBAP+PDU帧结构,通过IP地址和502端口实现网络通信,支持标准功能码(如读/写寄存器、线圈)。相比传统串行Modbus,具有高速传输、远距离通信优势。从站需解析请求、执行操作并返回响应,同时处理错误校验和并发连接。该协议广泛应用于智能传感器、PLC等工业设备,实现高效可靠的主从数据交互。

zyfucking2010的博客 1435

汉字字符编码与转码详解

程序中有汉字参数,经常会遇到编码转码问题,总结下: 1.汉字为多字节字符,须多字节编码解码,如"测试".getBytes("gb2312");这样"测试".getBytes("gb2312")就变成一个byte数组,这时候你可以随意重新指定编码如iso-8859-1, String s1=new String("测试".getBytes("gb2312"),"iso-8859-1

tomspiders的专栏 1022

编译opencv4.2时出现undefined reference to `jpeg_default_qtables‘错误的解决方案

操作系统:kylinV10 opencv版本:4.2.0 在编译opencv4.2.0的版本时,出现undefined reference to `jpeg_default_qtables’的错误提示,导致openc编译中断,不能继续编译,所以这个错误必须解决。 解决方案 查看错误的名字,根据名字分析,很有可能是当前系统中没有安装jpeg第三方库,到 http://www.ijg.org/上下载最新的源码包 jpegsrc.v9e.tar.gz,按如下顺序开始编译安装: tar -xzvf jpegsr.

jndingxin的专栏 5106

ubuntu utf-8编码转汉字

比如: \345\276\205\345\255\246\344\271\240 1.首先把\345为八进制,转换成十六进制 >>> hex(0345) '0xe5' >>> hex(0276) '0xbe' >>> hex(0205) '0x85 2.上面转换三个是因为,每三个表示一个汉字 e5be85 => %E5%BE%85 ...

lexiaoyao521314的博客 1025

Microsemi Libero系列教程(六)——Identify片上逻辑分析仪的使用

文章目录FPGA如何进行在线调试关于Microsemi片上逻辑分析仪FPGA片上逻辑分析仪原理预期效果0.准备一个创建好的Libero工程1.新建identify工程,并添加想要监测的信号2.管脚分配,编译下载3.设置触发类型4.IICE逻辑分析仪核资源占用 系列教程:Microsemi Libero系列教程 FPGA如何进行在线调试 对于嵌入式系统来说,如单片机,进行硬件级程序调试时,通常采用的是JLink/ST-Link调试器,在线调试的方式来获取程序实时运行的状态,可以观察程序运行流程、各种变量的值

whik1194的博客 1万+

华为OD机试 - 学校的位置 - 数学问题(Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 455

JAVA中转义字符

JAVA中转义字符 2010年08月11日 星期三 上午 12:22 JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'       \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字;0~65535      \u0000:空字符 3.特殊字符:就3个       \":双引号

GeneralYY0的专栏 25万+

大模型对齐的核心引擎:RLHF三阶段完整技术体系详解——从InstructGPT到ChatGPT与Claude 4.6的工程实践

RLHF从InstructGPT起步,经由ChatGPT、Claude系列的工程实践,已演变为现代大语言模型不可或缺的对齐基础设施。其三阶段流程——SFT构建基础能力基线,奖励模型将人类偏好编码为可微信号,PPO以KL约束驱动策略向偏好分布优化——构成了当代对齐技术的核心骨架。OpenAI的路线侧重于以海量人工标注和多目标奖励建模持续精细化RLHF流程,在规模与工程深度上持续推进;

nmdbbzcl的博客 1065

java转义字符怎么用_详解JAVA中转义字符

本文主要介绍JAVA中转义字符,分享给大家。具体如下:1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'\0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535\u0000:空字符3.特殊字符:就3个\":双引号\':单引号\\:反斜线4.控制字符:5个\' 单引号字符\\ 反斜杠字符\r 回车\n 换行\f 走纸换页\t 横向跳格\b 退格点的转...

weixin_32668987的博客 3863

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java转义字符

文章系统介绍了Java中各类转义字符的用法,包括标准转义序列(如\n、\t)、Unicode转义(\u)以及特殊场景应用。重点讲解了字符串处理、正则表达式、文件路径中的常见陷阱与正确写法,并提供了ANSI颜色输出、SQL处理等高级应用示例。文章还强调了编译时处理机制、性能优化建议,推荐使用专用库处理HTML/XML/JSON等结构化数据。最后指出合理使用转义字符对代码质量、安全防护的重要价值,是Java开发者必须掌握的核心技能。

weixin_74120671的博客 2942

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java 字符串中转义字符_Java中的转义字符

java 字符串中转义字符Learn how we can use escape sequence in Java了解如何在Java中使用转义序列 These characters can be any letters, numerals, punctuation marks and so on. The main thing when creating a string is that the ...

weixin_26720549的博客 6133

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java中的转义字符_JAVA中的转义字符

1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'\0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535\u0000:空字符3.特殊字符:就3个\":双引号\':单引号\\:反斜线4.控制字符:5个\' 单引号字符\\ 反斜杠字符\r 回车\n 换行\f 走纸换页\t 横向跳格\b 退格点的转义:. ==> u002E美元符号的转义:$ =...

weixin_34050162的博客 660

Java——转义字符

本文主要介绍Java中的转义字符

Stewie Lee的博客 7593

JAVA转义字符

JAVA中转义字符 2009-08-12 17:40   JAVA中转义字符: 1.八进制转义序列: + 1到3位5数字;范围'00'~'377' :空字符 2.Unicode转义字符:u + 四个十六进制数字;0~65535 u0000:空字符 3.特殊字符:就3个 ":双引号 ':单引号 \:反斜线 4.控制字符:5个 ' 单引号字符 \ 反斜杠字符 r 回车

ABC006250的专栏 910

java中常用的转义字符_java常用转义字符

JAVA中转义字符2009-08-12 17:40JAVA中转义字符:1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'\0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535\u0000:空字符3.特殊字符:就3个\":双引号\':单引号\\:反斜线4.控制字符:5个\' 单引号字符\\ 反斜杠字符\r 回车\n 换行\f 走纸换页\t 横向跳格...

weixin_35691715的博客 2061

Java中的转义字符

java中的转义字符 有些特殊的字符在java中无法正常使用或展示,因为有特殊的作用 使用\+要转义的字符 \' \" \\ \t 制表符 一个制表符位8个空格 一个字母1个空格 一个汉字是2个空格 如果前面的内容是制表符位的整数倍,当前制表符为重开一个,如果不够,补全一整个制表符位 \n 换行 \r 光标回到行首 \b 退格 ...

FGNB! 1324

java的转义字符表

例如,如果我们需要在字符串中表示反斜杠字符本身,我们需要使用两个连续的反斜杠("\")。在Java中,也提供了一组转义字符,用于表示特定的字符或控制序列。然而,制表符应该使用 \t 进行表示,而不是在字符串中直接使用。然而,换行符应该使用 \n 进行表示,而不是在字符串中直接使用。然而,回车符应该使用 \r 进行表示,而不是在字符串中直接使用。然而,在字符串中表示反斜杠字符本身应该使用 \,而不是 \。在这个错误的示例中,我们在输出字符串中使用了错误的转义字符,导致编译错误或输出结果不符合预期。

牛肉胡辣汤 1742

java双引号的转义字符_JAVA中转义字符

JAVA中转义字符:1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'\0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535\u0000:空字符3.特殊字符:就3个\":双引号\':单引号\\:反斜线4.控制字符:5个\' 单引号字符\\ 反斜杠字符\r 回车\n 换行\f 走纸换页\t 横向跳格\b 退格点的转义:. ==> \u002E...

weixin_39921131的博客 8849

java转义字符响铃_java 的转义字符

JAVA中转义字符:1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'\0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535\u0000:空字符3.特殊字符:就3个\":双引号\':单引号\\:反斜线4.控制字符:5个\' 单引号字符\\ 反斜杠字符\r 回车\n 换行\f 走纸换页\t 横向跳格\b 退格点的转义:. ==> u002E美...

weixin_29466339的博客 414
上一篇: Tomcat安全域设置大全
下一篇: 计算机中数的表示
enet_java
博客等级 码龄21年 20粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值