为什么 char 数据类型的零和空在 java 中被视为相同



我必须通过检查字符是否具有零值以及字符是否具有空值'\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">

相关内容

  • 没有找到相关文章

最新更新