ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 3; i++) {
list.add(new BufferedReader(new InputStreamReader(System.in)).readLine());
}
for (int i = 1; i < list.size(); i++) {
int a = list.get(i-1).length();
if (list.get(i).length() < a) {
System.out.println(list.indexOf(list.get(i)));
break;
}
}
Ввод:
w
ww
w
Вывод: 0
Почему? indexOf возвращает почему то 0, как так получается? Ошибка JVM? По логике вывод должен быть 2!...Максим
11 уровень
Странно!
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Pryshchepa Java Developer Expert
8 мая 2018, 10:45решение
Потому, что indexOf возвращает индекс первого вхождения, а индекс первого вхождения строки "w" это 0.
+2
Максим
8 мая 2018, 23:56
Спасибо! Понял)
0
Ваня Жуков
8 мая 2018, 06:38решение
Ошибка JVM, LOL.
А багло происходит потому, что у вас не уникальные строки в листе, IndexOf берёт индекс первой попавшейся.
+2
Максим
8 мая 2018, 23:57
Спасибо)
0