Проверка появления всех цифр в другом массиве

1

Я сделал этот кусок кода, который должен попросить пользователя ввести длину первых массивов, которые будут содержать количество нужных ему чисел, чем получение каждого числа до тех пор, пока сумма не будет выполнена. после этого ему нужно запросить длину массива цифр и получить цифры. чем, мне нужно проверить, содержат ли все цифры все цифры, если это правда, напечатайте его, если нет, напечатайте false. В этом коде я уже заменяю int [] строковыми массивами, потому что я думаю, что это так, как он работает. когда я пытался создавать массивы Int, только с номерами с одной цифрой, он отлично работает. Проблема возникает, когда вы хотите, чтобы число 22 с 2 цифрами, проверка прерываний и не работающая.

String numInNumbersArray,
digitInDigitsArray;
int counterNumbers=0;
System.out.println("Please enter the length of the numbers array: ");
int numbersLength=s.nextInt();
String[] numbersArray=new String [numbersLength];

System.out.printf("Please enter %d numbers: ",numbersLength);
    for(int i=0;i<numbersArray.length;i++){
        numInNumbersArray=s.next();
        numbersArray[i]=numInNumbersArray;
    }
System.out.println("Please enter the length of the digits array: ");
int digitsLength=s.nextInt();
String[] digitsArray=new String [digitsLength];
System.out.printf("Please enter %d digits between 0 - 9 and - if you want: ",digitsLength);
    for(int i=0;i<digitsArray.length;i++){
        digitInDigitsArray=s.next();
        digitsArray[i]=digitInDigitsArray;
        }
    for(int i=0;i<digitsArray.length;i++){
        for(int j=0;j<numbersArray.length;j++){
            if(numbersArray[j].equals(digitsArray[i])){
                counterNumbers++;
            }
        }
    }
    if(counterNumbers==numbersArray.length){
        System.out.println("true\n");
    }else{
        System.out.println("false\n");
    }

Поэтому я, очевидно, нуждаюсь в массиве String, но я не знаю, как продолжить отсюда, чтобы проверять каждую цифру от числа. (Я не могу использовать передовые методы, только простые проверки). Ваша помощь или настройка были бы замечательными. Благодарю.

EDIT: он должен быть строковым, потому что он также содержит символы "-" (negetive numbers), чтобы сделать его более чистым, чтобы понять. Я добавлю примеры:

digits arrays for example : (1,2,-,3)
and numbers array : (1,-2,3)

это должно быть верно.

and digits: (1,2,3)
numbers: (12,-3,123)

должен возвращать false.

  • 0
    numbersArray[j]==digitsArray[i] Нет, вы сравниваете строки с == .. Argh! Для получения дополнительной информации см. Как сравнить строки в Java?
  • 0
    К сожалению. это мое плохо, но это не изменит мою основную проблему в любом случае, потому что мне нужно перейти на целое число для каждой цифры и проверить, и это моя главная проблема
Показать ещё 3 комментария
Теги:

1 ответ

0

Проблема заключается в том, чтобы проверить, равны ли массивы.

Представьте себе, если numbersArray = {"2", "2"} и digitsArray = {"2", "2"} как вы заявили выше.

Этот цикл:

for(int i=0;i<digitsArray.length;i++){
    for(int j=0;j<numbersArray.length;j++){
        if(numbersArray[j].equals(digitsArray[i])){
            counterNumbers++;
        }
    }
}

будет сравнивать первый "2" - numbersArray[0] с digitsArray[0] AND digitsArray[1], делая counterNumbers = 2. Затем первый цикл цикла будет обрабатываться до i=1, где он примет второй "2" - numbersArray[1] с digitsArray[0] AND digitsArray[1] делающий counterNumbers = 4.

Видите ли вы свою вину?

Вот подсказка, вы должны сравнивать каждый массив "по цифре", а не сравнивать первую "цифру" в numbersArray со всеми "цифрами" в digitsArray. Примечание: Эта подсказка только полезно, если у вас есть каждый массив (numbersArray и digitsArray) в том же порядке. Вы должны изучить их сортировку, чтобы убедиться в этом.

Поскольку это кажется домашним заданием, я остановлюсь здесь и позволяю вам самим исправить это.

  • 0
    спасибо за ваш комментарий, как я уже писал, я знаю, что нужно сделать, я просто не знаю, как это сделать, вот что я просил :) намек на то, как начать делать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню