Я пытаюсь принять массив чисел и выводить, если введенные числа отличаются или нет. Я проверил более ранние вопросы по этому поводу:Оператор «==» и метод Equals/compareTo не работают
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!");
}
}
Подсказка: 'a.length' равно 10, независимо от того, сколько аргументов вы передали в командной строке – Mat
' "2,3,4" ', поскольку аргумент командной строки даст вам только один аргумент в массиве args, вы должны ввести '' 2 3 4 "' – x4rf41
@ x4rf41 Я думаю, что OP означает '' 2 3 4 "', иначе он бы выбрал 'NumberFormatException'. –