Чтение входных данных сканера Java - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть следующий вход в 3 строки:

строка 1: состоит из положительных чисел int m и n, разделенных пробелом

строка 2: список m int, разделенных пробелом

строка 3 и далее: список из n слов, разделенных пробелами или символом новой строки

Я не могу прочитать больше, чем m и n, в мой код

Мой код:

Scanner input = new Scanner(System.in);
m = input.nextInt();
n = input.nextInt();
int[] lines = new int[m];
String[] words = new String[n];
input.nextLine();
for (int i = 0; i < m; i++) {
    lines[i] = input.nextInt();
}
for (int i = 0; i < n; i++) {
    words[i] = input.next();
}

Как читать строки и слова в массивы после того, как я вызываю первую функцию nextLine () и пытаюсь прочитать числа, я получаю нулевое исключение

1 Ответ

1 голос
/ 01 ноября 2019

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

Пример ввода

3 2
9 5 2
Good Luck

PROGRAM

Scanner input = new Scanner(System.in);

int m = input.nextInt();
int n= input.nextInt();

int[] lines = new int[m];
for (int i = 0; i < m; i++) {
    lines[i] = input.nextInt();
}

String[] words = new String[n];
for (int i = 0; i < n; i++) {
    words[i] = input.next();
}

...