ArrayList <String> list = new ArrayList <>();
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
int min, max, ind1, ind2 = 0;
for (int i = 0; i<10; i++){
list.add(reader.readLine());
}
for (int i = 0; i<10; i ++){
min = list.get(i).length();
max = list.get(i).length();
for ( int j = 0; j<10; j ++){
if(list.get(j).length() <= min){
min = list.get(j).length();
ind1 = list.indexOf(list.get(j));
}
else if (list.get(j).length() >= max){
max = list.get(j).length();
ind2 = list.indexOf(list.get(j));
}
if(ind1 < ind2) System.out.println(list.get(ind1));
else System.out.println(list.get(ind1));
}
Глеб
20 уровень
подскажите в чём проблема, мне кажется, что я метод indexOf неправильно использую
Обсуждается
Комментарии (14)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
NodeOneExpert
30 апреля 2018, 18:30
А вспомнил, вывести мин и макс... Думаю что оптимально будет методом пузырьков отсортировать список а потом вывести list.get(0) и list.get(list.size()-1);
Сортировка:
0
Глеб
30 апреля 2018, 18:39
1. Создай список строк.
2. Добавь в него 10 строчек с клавиатуры.
3. Узнай, какая строка в списке встретится раньше: самая короткая или самая длинная.
Если таких строк несколько, то должны быть учтены самые первые из них.
4. Выведи на экран строку из п.3. Должна быть выведена одна строка.
Требования:
1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Программа должна считывать 10 строк с клавиатуры и добавлять их в список.
3. Программа должна выводить на экран самую короткую строку, если она была раньше самой длинной.
4. Программа должна выводить на экран самую длинную строку, если она была раньше самой короткой.
не совсем) мы же пузырьком сравниваем целочисленные значения, а у нас стринговый список
0
Глеб
30 апреля 2018, 18:39
package com.javarush.task.task07.task0712;
0
NodeOneExpert
30 апреля 2018, 18:49полезный
а блин. ну тогда я бы запоминал длину строк и индексы при обходе и вывел бы строку с меньшим индексом. типа
Сочиняю на ходу поэтому не претендую на то что код правильный но на мысли навести должен. +1
Глеб
30 апреля 2018, 19:07
вооооот! особенно эта строчка! до это тормозил на присвоении максимальной величины и не знал как дальше вывести! спасибо, большое)
+1
NodeOneExpert
30 апреля 2018, 19:39
+ и решение можно еще нажать.
0
NodeOneExpert
30 апреля 2018, 18:21
Условие задачи не напомните? И желательно верхнюю строку класса Solution, что бы можно было в своих записях задачу найти посмотреть как решал.
0
Pavlo Plynko Java-разработчик в CodeGym Expert
30 апреля 2018, 15:08полезный
Пример правильного использования метода indexOf():
+1
Глеб
30 апреля 2018, 17:25
Спасибо)
0
--------Master
24 апреля 2018, 20:41полезный
ind1 = list.indexOf(list.get(j)); - "достаем элемент по конкретному индексу, чтобы попытаться выяснить его индекс"? ))
А вообще, есть такая полезная кнопочка - "Запуск программы", позволяет в пару кликов и нажатий клавиш посмотреть, что твой код делает, и сравнить с тем, что он должен делать по заданию...
+1
Глеб
25 апреля 2018, 17:58
Спасибо, за совет! В следующий раз, обязательно, воспользуюсь данной функцией! Желаю вам найти брата по разуму, а не острить с людьми, чьи знания, на данный момент, меньше ваших!
0
--------Master
25 апреля 2018, 20:03
А как уровень знаний связан с попытками отправлять код на проверку, даже не попытавшись убедиться в его работоспособности? И ни о каком остроумии тут речь и близко не идет - только реальное недоумение...
0
Глеб
25 апреля 2018, 21:49
Прошу прощение, за неработоспособность моего кода, нигде не написано, что в данный раздел люди должны отправлять лишь работоспособный код. Я исправлюсь. А вы, бросайте, это занятие недоумевать, это же негатив. В конечном итоге, поставьте себе плюсик, что вы бы никогда не отправили такой код. Вы молодец.
0
--------Master
25 апреля 2018, 21:59
Прошу прощения, что попытался помочь - думал, человек реально чему-то пытается научиться, а не просто по уровням пробежаться, задачки посписывать. Больше подобной ошибки не допущу, удачи.
+2