'=='运算符和Equals / compareTo方法都不起作用

时间:2014-01-05 09:07:27

标签: java

如果输入的数字是不同的,我试图接受一组数字和输出。我检查了之前的问题:

1)使用'=='运算符不会给我正确的输出,即如果输入“2,3,4”作为命令行参数(输入),它仍会返回“数字并不明显”。在这种情况下,程序可以编译并运行,但不能提供正确的输出。

2)使用'equals'和'compareTo'方法会在编译时返回错误,“int无法解除引用!”这种恭维本身并不成功。

我的代码如下:

class DistinctNoCheck
{
    public static void main(String[] args)
    {   int temp = 0;
        int [] a = new int [10];
        for(int i=0;i<args.length;i++)
        {
            a[i] = Integer.parseInt(args[i]);
        }
        for(int i=0;i<a.length;i++)
        {
            temp = a[i];
            for(int j=0;j<a.length;j++)
            {
                if((a[j] == temp) && (!(i == j)))
                {
                    System.out.println("Numbers are not distinct!");
                    System.exit(0);
                }
            }
        }
        System.out.println("Numbers are distinct!");
    }
}

1 个答案:

答案 0 :(得分:2)

您正在使用a.length,即10.在迭代数组时应使用args.length

替换

for(int j=0;j<a.length;j++)

for(int j=0;j<args.length;j++)

与i变量循环相同。