@ABCquestion

Как исправить Exception in thread «main» java.util.NoSuchElementException?

import java.util.Arrays;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
System.out.println("Введите длину одномерного массива");
Scanner vvod = new Scanner(System.in);
int n = vvod.nextInt();
int[] numbers = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("Введите " + (i + 1) + "-й элемент массива: ");
numbers[i] = vvod.nextInt();
System.out.println(numbers[i] + " - ");
}
System.out.println(Arrays.toString(numbers));
// write your code here
//int[] numbers = {2,4,4,4,6,5,5,4,0,3,3,3};
ArrayList<Integer> remove = new ArrayList<>();
boolean b = true;
int countgroup = 0;
for (int i = 0; i < numbers.length-1; i++) {
boolean flag = true;
if (numbers[i] == numbers[i+1]) {
countgroup++;
remove.add(i+1);
}
} 
System.out.println("количество групп из одинаковых подряд идущих элементов: " +
countgroup);
System.out.println("массив индексов улалений: " + remove);
System.out.println("стырый массив : " + Arrays.toString(numbers));
numbers = removeItem(numbers, remove);
System.out.println("преобразованный массив: " + Arrays.toString(numbers));
}
public static int[] removeItem(int[] numbers, ArrayList<Integer> remove){
int removeindex = 0;
int notremoveindex = 0;
int notremovelength = numbers.length - remove.size();
int notremove[] = new int[notremovelength];
for (int i = 0; i < numbers.length; i++) {
if (i != remove.get(removeindex)){
notremove[notremoveindex] = numbers[i];
notremoveindex++;
}else{
if(removeindex < remove.size() - 1){
removeindex++;
}
}
}
return notremove;
}}

Exception in thread "main" java.util.NoSuchElementException
	at java.base/java.util.Scanner.throwFor(Scanner.java:937)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
	at Main.main(Main.java:9)

636ab4229ca45468160475.png
  • Вопрос задан
  • 660 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Wan-Derer
Зобанели на Хабре, волки́ ;((
У тебя на разных данных разные ошибки :)
Например, на 1, 2, 2, 2, 3 всё нормально.
А на 1, 2, 3 будет ошибка в методе removeItem() т.к. ты передаёшь туда List нулевой длины и пытаешься получить его элемент.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы