Java转义字符以反斜杠\开头表示特殊字符,如\n换行、\t制表、\"双引号、\\反斜杠等;仅在字符串/字符字面量中生效,编译期解析,运行时输入不自动转义。

Java中转义字符用于表示那些无法直接输入或具有特殊含义的字符,比如换行、制表、双引号、反斜杠本身等。字符串字面量中必须用反斜杠(\)开头配合特定字符构成转义序列,否则编译会报错或行为异常。
常见转义字符及其用途
Java支持的标准转义序列包括:
-
\n:换行(line feed),光标移到下一行开头 -
\t:水平制表符(tab),通常相当于4–8个空格宽度 -
\r:回车(carriage return),光标回到当前行开头(常与\n组合成\r\n用于Windows换行) -
\":双引号,用于在双引号包围的字符串中嵌入双引号 -
\':单引号,虽在字符串中非必需(因字符串用双引号界定),但在字符字面量中常用,如'\'' -
\\:反斜杠本身,因为\是转义起始符,要表示字面意义的反斜杠必须写两个 -
\b:退格(backspace),将光标左移一格(输出时可能被终端忽略或表现不一致) -
\f:换页(form feed),较少使用,某些打印机或文本渲染中起分页作用
字符串中转义的实际写法与陷阱
Java字符串在编译期就完成转义解析,因此源码中的转义序列会被替换成对应Unicode字符。注意以下几点:
- 转义只在字符串字面量(即双引号内)和字符字面量(单引号内)生效;变量拼接或运行时构造的字符串不会自动解析转义
- 错误示例:
String s = "C:\new\test";→ 实际生成的是C:[换行]ew[制表]est,因为\n和\t被解析了。正确写法应为"C:\\new\\test" - 若需大量含反斜杠的路径或正则表达式,可考虑使用
String.format或Paths.get()等API避免手动转义 - 从文件、网络或用户输入读取的字符串(如
"\\n"两个字符)不会被自动转义,它们就是字面的反斜杠+字母n
如何手动解析含转义的字符串(运行时)
Java标准库不提供内置方法将形如"\n\t"的字符串自动转换为"\n\t"(即执行转义解析)。如需该功能,需自行实现或借助第三方库:
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
立即学习“Java免费学习笔记(深入)”;
- 简单场景可用Apache Commons Text的
StringEscapeUtils.unescapeJava() - 自定义解析需按顺序识别
\\、\n、\t等,并替换为对应字符(注意避免重复解析,如\\\\应变成\\) - 正则表达式中匹配反斜杠需写四个:
\\\\(两个给字符串字面量转义,两个给正则引擎转义)
Unicode转义与八进制转义(了解即可)
除上述常见形式外,Java还支持:
- Unicode转义:
\uXXXX(如\u0041表示A),在编译早期就被替换,可用于任何位置(甚至标识符中) - 八进制转义:
\0到\377(如\101也表示A),但已不推荐使用,易出错且可读性差
现代代码应优先使用标准转义序列或Unicode命名(如\u2022代替\u00B7),保持清晰与兼容。









