int A不等于int B.

时间:2013-11-28 05:50:36

标签: 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

创建原语时是否也引用了?为什么一个永远不等于b,除非我一直计算到106?

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

1 个答案:

答案 0 :(得分:4)

问题出在代码中的其他位置(在您未显示的部分)。这就是为什么建议您提供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会显示此信息。