我一直在研究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'给了我一个无效的字符常量。我需要知道发生了什么,以及我如何能够纠正这种情况。谢谢!
答案 0 :(得分:2)
您尝试将String表示为char
n.alpha != '\0' // single quotes denote a character
您需要使用字符串
n.alpha != "\0"
然后,因为等式运算符通常不应该与字符串一起使用,并且因为您错误地测试了String
和char
之间的相等性,所以需要重写它是
if(!Character.toString(n.alpha).equals("\0"))
请注意使用Character.toString(n.alpha)
将char n.alpha
转换为String。