+ 1

Почему не заполняется массив через Scanner?

Scanner sc = new Scanner(System.in); int nums = 0; while(sc.hasNext()){ String x = sc.nextLine(); nums++;} (Код выше считает количество введенных слов в каждой отдельной строке (предполагается именно такой ввод). String [] arr = new String [nums]; (Далее, зная сколько было введенных слов, я объявляю массив, указывая известное мне кол-во элементов в нем). for(int i = 0; i < nums; i++){ arr[i] = sc.nextLine(); } (Здесь создаю цикл, который перебирает мой массив, а после, с каждой последующей итерацией, он должен был присваивать каждому элементу те самые значения из пользовательского ввода, но тут уже выдает ошибку). System.out.println(arr[1]); Помогите разобраться, как я могу положить значения из ввода в массив? В чем ошибка? Я проверила каждый отдельный кусок кода и все они работают, но вот что-то все равно не то :( хальп ми плис

7th Sep 2023, 8:04 PM
Tatyana Mironova
Tatyana Mironova - avatar
3 Answers
+ 2
Массив не заполняется, потому что нечем - ты всё забрала в цикле while. Что за задание? ЗЫ. если нужно хранить строки в массиве, то возьми динамический ArrayList ArrayList<String> arr = new ArrayList<String>(); Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { arr.add(sc.nextLine()); }
7th Sep 2023, 9:48 PM
Alexey Kopyshev
Alexey Kopyshev - avatar
+ 1
Alexey Kopyshev вааа, ты мне очень помог) Я еще пока совсем мало знаю по джаве и не была в курсе про динамические массивы. Почитала, разобралась и это, как оказалось, очень крутая вещь. Спасибо за помощь)
8th Sep 2023, 7:57 PM
Tatyana Mironova
Tatyana Mironova - avatar
0
Хотя немного жаль, что мой способ оказался нежизнеспособным 😅
8th Sep 2023, 7:58 PM
Tatyana Mironova
Tatyana Mironova - avatar