为什么在Java中不能将\ u000D和\ u000A用作CR和LF?编译代码时出现错误:
String x = "\u000A hello";//Error - Illegal escape character in string literal.
在运行编译器之前,会对Unicode转义进行预处理。因此,如果您\u000A输入这样的String文字:
\u000A
String someString = "foo\u000Abar";
它将完全像您编写的那样进行编译:
String someString = "foo bar";
坚持\r(回车;0x0D)和\n(换行;0x0A)
\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!"); } } }