Исключение в потоке "main" java .util.NoSuchElementException при получении неизвестного количества входов и последующем получении другого ввода - PullRequest
0 голосов
/ 04 февраля 2020

Я получаю неизвестное количество входов в массиве, первоначально используя hasNext(), и получаю другой набор входов, но получаю NoSuchElementException.

Фрагмент кода:

public class Hello {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] array = new int[100];
        int input = 0;
        while (sc.hasNext()) {
            array[input++] = sc.nextInt();
        }
        int k = sc.nextInt();
        int[] newArray = new int[100];
        int j = 0;
        for (int h = 0; h < k; h++)
            newArray[j++] = sc.nextInt();
    }
}

1 Ответ

0 голосов
/ 12 февраля 2020

Вы прочитали все значения и затем вызвали int k = s c .nextInt (); снова. Вот причина исключения. Попробуйте добавить несколько логик c, чтобы получить все входные данные более определенным образом c. Из источника

/**
 * Scans the next token of the input as an <tt>int</tt>.
 *
 * <p> An invocation of this method of the form
 * <tt>nextInt()</tt> behaves in exactly the same way as the
 * invocation <tt>nextInt(radix)</tt>, where <code>radix</code>
 * is the default radix of this scanner.
 *
 * @return the <tt>int</tt> scanned from the input
 * @throws InputMismatchException
 *         if the next token does not match the <i>Integer</i>
 *         regular expression, or is out of range
 * @throws NoSuchElementException if input is exhausted
 * @throws IllegalStateException if this scanner is closed
 */
public int nextInt() {
    return nextInt(defaultRadix);
}
...