java - 为什么 "\400"不是编译时错误?

标签 java string unicode unicode-string string-literals

0 到 255 之间的字符值可以用从 "\000""\377" 的八进制文字表示。

那么 "\400" 不应该是一个编译时错误吗?然而,Eclipse 并没有提示……这是怎么回事?

最佳答案

它将其解释为 "\40"+ "0"

Java 语言规范对此进行了描述 here .

OctalEscape:
    \ OctalDigit
    \ OctalDigit OctalDigit
    \ ZeroToThree OctalDigit OctalDigit

OctalDigit: one of
    0 1 2 3 4 5 6 7

ZeroToThree: one of
    0 1 2 3

关于java - 为什么 "\400"不是编译时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819442/

相关文章:

java - MIPS 汇编 while 循环

java - 不安全的密码加密模式,如何解决?

java - 为 ListView 设置适配器时出现 NullPointerException

python - 进行不区分大小写的替换但匹配要替换的单词的大小写的最佳方法?

javascript - 在此代码中将日期格式化为 dd/MM/yyyy

unicode - 解析和导航 UTF-8 字节流的惯用方法

java - 用 ASCII 近似值替换 unicode 标点符号

c++ - 构建正确的类

c++ - 如何在 Windows API 中指定与编码无关的字符串常量?

python - 为什么我无法使用 urllib.request.urlopen(url).read() 解码 zhihu.com 响应?