处理无效的字符常量

时间:2015-05-13 06:28:15

标签: java

我一直在研究java中的数据压缩和解压缩程序。在我的代码中的某些时候,我想只访问带键的节点。代码的一部分如下所示:

//visit only nodes with keys
if(n.alpha != '\0') {
     System.out.println("{" + n.alpha + ":" + s + "}");
     charToCode.put(n.alpha, s);
     codeToChar.put(s, n.alpha);
}

'\ 0'给了我一个无效的字符常量。我需要知道发生了什么,以及我如何能够纠正这种情况。谢谢!

1 个答案:

答案 0 :(得分:2)

您尝试将String表示为char

n.alpha != '\0' // single quotes denote a character

您需要使用字符串

n.alpha != "\0"

然后,因为等式运算符通常不应该与字符串一起使用,并且因为您错误地测试了Stringchar之间的相等性,所以需要重写它是

if(!Character.toString(n.alpha).equals("\0"))

请注意使用Character.toString(n.alpha)将char n.alpha转换为String。