最近我发现我的代码中的Java字符串中隐藏了一些负字节,导致.equals字符串比较失败。
字符串中负字节值的重要性是什么?他们能说什么意思吗?在任何情况下,String中的负字节值可以解释为什么?我是这个编码业务的noob,所以如果需要解释不同的编码方案,请随意。
答案 0 :(得分:2)
Java字符串包含字符,但您可以用不同的方式解释它们。如果每个字符都是一个字节,那么它的范围可以是0-255(含)。这是8位。
现在,最左边的位可以解释为符号位或字符大小的一部分。如果该位被解释为符号位,那么您将拥有-128到+127之间的数据项。
您没有发布用于打印字符的代码,但如果您使用逻辑将字符解释为已签名的数据项,那么您将在输出中获得负数。