我必须通过检查字符是否具有零值以及字符是否具有空值'\u0000值来执行某些任务,但不知道Java编译器是否将两者视为相同 下面是示例代码
char nullTest = 0;
System.out.println(nullTest == 'u0000'); //it is giving true
如果我将其初始化为nullTest = '0'
那么它给出 false,但在我的程序中,我经常为这个变量分配数字和 null'u0000'
,因此它会产生运行时错误,
表示法 \uXXXX 主要只出现在 .java 和 .properties 文件中。在那里,它被读取为Unicode 代码点。Unicode 文本(=使用所有类型的特殊字符)通常使用 UTF-8 格式(尽管有时也使用 UTF16LE 和 UTF16BE)。
因此,如果您在 java 中使用char nullTest = 0;
初始化字符而不给出单引号,则它在内部被视为nullTest = unicode of 0
这是'u0000'
但是如果您使用引号初始化字符,例如char nullTest= '0'
它被视为字符串字符并存储为"0">