Я не получаю сообщение об ошибке при запуске кода на IntelliJ .Однако, когда я пытаюсь передать свой Кодекс для задания, над которым я работаю, я получаю NFE для обоих тестовых случаев.Я удалил весь свой код и позволил только тестам, приведенным ниже, проходить тест.Где-то здесь должно быть NumberFormatException
.
public class Search {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int[] list = new int[n];
String [] tokens = sc.nextLine().trim().split(" ");
for (int i=0; i<tokens.length;i++){
list[i]=Integer.parseInt(tokens[i]);
}
}
}
Я прочитал о двойных пробелах и проверил это с помощью: System.out.println(Arrays.asList(tokens).contains(""));
Вывод был ложным, так что это не вариант.Как видите, я уже использую trim()
.Буду признателен за вашу помощь.Луи
Эддит: Хорошо, здесь что-то подозрительное.Я добавил
System.out.println(Arrays.asList(tokens).contains(""));
System.out.println(Arrays.toString(tokens));
к своему коду и передал его в контрольные примеры.В то время как IntelliJ выдаст false, а затем массив целых чисел, тестовый пример выдает: true [].Поэтому вы все правы, и я просто ошибочно предположил, что входные данные в моих тестовых примерах были бы аналогичны входным данным, приведенным мной в задании
Edit2:
УЖЕ!Я понял.Входные данные тестовых случаев были просто не того же формата, что и входные данные моего теста, которые выглядели примерно так:
10
8 8 9 12 110 111 117 186 298 321
2
8 13
Я предполагаю, что sc.nextLine (), который я включил, пропустил целые числа, которые мне нужны для составления моего списка.Таким образом, настоящая проблема была не в том, что лишние пробелы или что-то еще, просто в том, что я продвинулся дальше, чем я хотел, используя sc.nextLine ().Ответ, который дал мне подсказку, в которой я нуждался, даже если я не думаю, что это было предназначено, пришел от Андроника.В любом случае, спасибо всем.