Почему здесь не идет использование foreach? Это же чтение и вывод int массива.
mport java.io.*;
import java.util.*;
----------------------------------------------
String[] arrS = new String[4];
int[] arrI = new int[4];
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < arrS.length; i++){
arrS[i] = r.readLine();
arrI[i] = arrS[i].length();
}
Arrays.sort(arrI);
62 for(int j: arrI){
63 System.out.println(arrI[j]);
64 }
---------------------------------------------------
Выдает ошибку:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Solution.main(Solution.java:63)
Любовь
1 уровень
Foreach((
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Любовь
22 декабря 2017, 23:04
Спасибо за ответы, на самом деле.
Исправила на:
for(int j: arrI){
System.out.println(j);
}
все, конечно, заработало.
0
Александр Неклеса Backend Developer
22 декабря 2017, 10:52
в foreach нет индексов. В переменную j ты на каждой итерации получаешь следующий элемент массива.
foreach только для чтения из массива.
+1
Roman Pryshchepa Java Developer Expert
22 декабря 2017, 08:04решение
В этом цикле:
j - это уже элемент массива, а не индекс (так arrI[j] ты пытаешься обратиться к элементу массива с индексом(номером) j ).
Для того, чтобы это был индекс, нужно использовать цикл:
+3