为什么不能在Java中将\ u000D和\ u000A用作CR和LF?

为什么在Java中不能将\ u000D和\ u000A用作CR和LF?编译代码时出现错误:

String x = "\u000A hello";//Error - Illegal escape character in string literal.

回答:

在运行编译器之前,会对Unicode转义进行预处理。因此,如果您\u000A输入这样的String文字:

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!");

}

}

}

以上是 为什么不能在Java中将\ u000D和\ u000A用作CR和LF? 的全部内容, 来源链接: utcz.com/qa/404089.html

回到顶部