我一直在用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' 给我一个无效的字符常量。我需要知道发生了什么事,以及如何补救。谢谢!
最佳答案
您试图将字符串表示并视为字符
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
转换为字符串。
关于java - 处理无效字符常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30207205/