java - int A 不等于 int B

标签 java

<分区>

我有两个整数要比较。第一个整数是从一个 utf-8 字节创建的,第二个整数是我要检查它是否相等的整数。

int a = 106;  
int b = (int)byteArray[0]; //which actually equals 106 when you printstatement it

但是....

(a==b) //always equals false
int i = 0;    While(b != i) { println(i); i++;} //eventually escapes the loop and is true

创建时是否也引用了图元?为什么 a 永远不会等于 b,除非我一直数到 106?

有没有更好的方法来比较字节?因为我已经尝试了所有形式的变量,但它们也不起作用。

最佳答案

问题出在您代码的其他地方(在您未显示的部分)。这就是为什么建议您提供 SSCCE 的原因。 .

以下按预期工作(即打印 true):

public class Test
{
    public static void main(String[] args) throws Exception
    {
        byte[] byteArray = new byte[] { 106 };
        int a = 106;  
        int b = (int) byteArray[0];
        if (a == b)
            System.out.println("true");
    }
}

很可能,在您的代码中 byteArray[0] 不包含 106。SSCCE 会显示这一点。

关于java - int A 不等于 int B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20258641/

相关文章:

java - 用模式设计风格的抽象方法定义抽象类

java - 清除文本文件内容的更干净的方法

java - 错误:无法从REMOTE HBASE数据库获取表列表?

java - Gem Fire 6 至 Gem Fire 8 升级

java - 从 wordnet 获取属性

java - Spring MVC @RequestMapping 参数问题

java - 为什么在接口(interface)中声明方法时会出现 "VariableDeclaratorId expected"?

java - ResultSetMetaData getTableName 返回空

java - 在 Eclipse 中,我在哪里可以看到项目的构建进度?

JavaFX 8 工具提示消除了舞台的透明度