为什么我不能在 Java 中使用 \u000D 和 \u000A 作为 CR 和 LF?
为什么我不能在 Java 中使用 \u000D 和 \u000A 作为 CR 和 LF?当我编译代码时,它给出了一个错误:
String x = "\u000A hello";//Error - Illegal escape character in string literal.
为什么我不能在 Java 中使用 \u000D 和 \u000A 作为 CR 和 LF?当我编译代码时,它给出了一个错误:
String x = "\u000A hello";//Error - Illegal escape character in string literal.
Unicode 转义在运行编译器之前进行预处理。因此,如果您像这样输入字符串文本:\u000A
String someString = "foo\u000Abar";
它将完全按照您编写的内容进行编译:
String someString = "foo
bar";
坚持 (回车; ) 和 (换行符;\r
0x0D
\n
0x0A
)
奖金:您始终可以享受其中的乐趣,特别是考虑到大多数语法突出显示器的限制。下次有一秒钟的时间,请尝试运行以下代码:
public class FalseIsTrue {
public static void main(String[] args) {
if ( false == true ) { //these characters are magic: \u000a\u007d\u007b
System.out.println("false is true!");
}
}
}
因为它属于 Unicode 控件字符的范围
哪个是 和 。U+0000–U+001F
U+007F
Unicode 控制字符用于控制文本的解释或显示,但这些字符本身没有视觉或空间表示。
它们可以通过使用上面答案中描述的那样通过@Mark\
从 RFC:
2.5. 字符串
字符串的表示形式类似于 C 系列编程语言中使用的约定。字符串以引号开头和结尾。除必须转义的字符外,所有 Unicode 字符都可以放在引号内:引号、反向 solidus 和控制字符(U+0000 到 U+001F)。
任何字符都可以转义。