Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注释中unicode转义序列的行为_Java_Unicode - Fatal编程技术网

Java 注释中unicode转义序列的行为

Java 注释中unicode转义序列的行为,java,unicode,Java,Unicode,根据Cay Horstmann的“Core Java Vol.I”: 因此,以下代码不应起作用: class Test { public static void main(String[] arg2) { // \u00A0 is a new line char alpha = 'a'; System.out.println("abc" + alpha); } } 但它是有效的。为什么?该代码之所以有效,是因为该字

根据Cay Horstmann的“Core Java Vol.I”:

因此,以下代码不应起作用:

class Test
{
    public static void main(String[] arg2) 
    {
        // \u00A0 is a new line  
        char alpha = 'a';
        System.out.println("abc" + alpha);
    }
}

但它是有效的。为什么?

该代码之所以有效,是因为该字符是不间断空格,不是新行字符


最有可能发生的情况是,作者输入了一个打字错误,实际上是要打字,这是一个换行字符,并且确实如预期的那样中断。

代码工作,因为该字符是一个不中断的空格,不是一个换行符


最有可能发生的情况是,作者输入了一个打字错误,实际上是要打字,这是一个换行字符,确实如预期的那样中断。

事实上,代码按照所示进行编译,但如果
\u00A0
更改为
\u000A
,则不会编译。是的,您是正确的。这是打字错误,当我写\u000A时,它会起作用。谢谢。但是如果我们像这样写://\n是一个新行。应该是错误吗?@nicksilion,这很好,因为
“abc\n”
字符串,而不是注释。注释不受与字符串相同的规则约束。这实际上与字符串转义序列没有什么关系。
\u
符号不是字符串转义;它是一种通用转义符号,允许用于整个文件中的任何字符,包括换行符和注释内容。编译器在评估源代码之前会处理此类转义<代码>字符串s=“abc”
\u0053\u0074\u0072\u0069\u006e\u0067\u0073\u003d\u002abc\u0022
是完全相同的代码。事实上,代码按照所示进行编译,但如果
\u00A0
更改为
\u000A
,则不会编译。是的,您是正确的。这是打字错误,当我写\u000A时,它会起作用。谢谢。但是如果我们像这样写://\n是一个新行。应该是错误吗?@nicksilion,这很好,因为
“abc\n”
字符串,而不是注释。注释不受与字符串相同的规则约束。这实际上与字符串转义序列没有什么关系。
\u
符号不是字符串转义;它是一种通用转义符号,允许用于整个文件中的任何字符,包括换行符和注释内容。编译器在评估源代码之前处理这种转义<代码>字符串s=“abc”
\u0053\u0074\u0072\u0069\u006e\u0067\u0073\u003d\u002abc\u0022是完全相同的代码。