Java转义字符必须在字符串或字符字面量中按特定组合使用,单独\会报错;共9个标准序列(如\n、\t、\\等);Windows路径需用双反斜杠或正斜杠;正则中需双重转义;Unicode转义\uXXXX在编译早期处理。
Java中转义字符不是“写个反斜杠就完事”,它必须出现在字符串字面量或字符字面量中,且要符合特定组合才有意义。单独一个\会直接报错。
常见的转义字符及其作用
Java定义了9个标准转义序列,全部以反斜杠\开头:
-
\n:换行(LF,Line Feed),光标移到下一行开头 -
\t:水平制表符(Tab),通常等效于4或8个空格,取决于终端 -
\r:回车(CR,Carriage Return),光标回到当前行开头(不换行) -
\":双引号,用于在双引号字符串中嵌入双引号 -
\':单引号,用于在单引号字符字面量中表示单引号本身(如'\'') -
\\:反斜杠本身,因为\是转义起始符,所以得用两个才表示一个字面量反斜杠 -
\b:退格(Backspace),删除前一个字符(控制台可能不显示效果,但实际发生) -
\f:换页(Form Feed),极少使用,主要用于老式打印机 -
\0到\377:八进制转义(如\101表示ASCII 65,即'A'),注意最多三位八进制数
字符串中写反斜杠和路径的坑
Windows路径如C:\Users\name\doc直接写进Java字符串会出错——\U、\n、\d会被当作非法转义序列。
正确写法有两种:
- 全部用双反斜杠:
"C:\\Users\\name\\doc" - 用正斜杠(Java完全支持):
"C:/Users/name/doc"(更简洁、跨平台)
别用String path = "C:\Users\name";——编译失败。
正则表达式里的双重转义
正则中本身要用\d匹配数字,但在Java字符串里,这个\d得先被Java解析一次。所以代码中要写成"\d":第一个\逃逸第二个\,让字符串实际内容是\d,再交给正则引擎处理。
类似地:
- 匹配反斜杠:正则写
\\→ Java字符串写"\\\\ " - 匹配点号
.:正则需\.→ Java写"\\."
建议用Pattern.quote("xxx")自动转义整个字符串,避免手写出错。
Unicode转义与编译时机
Java还支持Unicode转义:\u0041等价于'A'。但它在**编译早期**就被替换,甚至早于注释解析——这意味着你可以在注释里写\u002F\u002F(即//),它会被当成注释开始符。
不过日常开发中尽量不用\uXXXX代替可读字符,除非处理特殊符号或规

基本上就这些。记牢:转义只在字符串/字符字面量中生效;反斜杠永远要成对出现(除非接合法转义字母);正则场景记得翻倍。








