"\ 1"在此Java字符串中表示什么?

Rol*_*all 25 java regex unicode-escapes

System.out.println("\1");
Run Code Online (Sandbox Code Playgroud)

我认为它没有编译,因为未识别的转义序列.

是什么"\1"究竟代表什么?

Jon*_*eet 23

它是一个八进制转义序列,如JLS 第3.10.6节中所列.例如:

String x = "\16";
Run Code Online (Sandbox Code Playgroud)

相当于:

String x = "\u000E";
Run Code Online (Sandbox Code Playgroud)

(因为Octal 16 = Hex E.)

所以\1我们U + 0001,"标题的开始"字符.

根据我的经验,八进制转义序列在Java中很少使用,我个人会在可能的情况下避免使用它们.当我想使用数字转义序列指定一个字符时,我总是使用\uxxxx.

  • @PP。:这取决于您的意思是哪个字符转义。例如,`// This \n is OK` 的注释是可以的,但是 `// This \u000a is not` 将无法编译。 (2认同)