Есть список:
List list = new ArrayList<>();
В этом списке по порядку находятся следующие значения:
"text1"
"text2"
"http://www...."
"text3"
"text4"
"text5"
"http://www...."
"text6"
Как мне переделать этот список так, чтобы он имел следующие элементы (как бы все элементы между URL
адресами должны стать одним элементом):
"text1+text2"
"http://www...."
"text3+text4+text5"
"http://www...."
"text6"
Что-то не могу логически сообразить, как сделать маленький компактный код для этой задачи. Помогите, пожалуйста!
Объявляя нетипизированную коллекцию:
List list = new ArrayList<>();
Вы можете получить ошибки в дальнейшем. Всегда явно указывайте тип:
List<String> list = new ArrayList<>();
Самый примитивный вариант:
private List<String> transform(List<String> stringList) {
List<String> resultList = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
for (String s : stringList) {
if (!s.startsWith("http://www")) {
stringBuilder.append(s);
stringBuilder.append("+");
} else if (stringBuilder.length() > 0) {
stringBuilder.setLength(stringBuilder.length() - 1);
resultList.add(stringBuilder.toString());
resultList.add(s);
stringBuilder.setLength(0);
}
}
if (stringBuilder.length() > 0) {
stringBuilder.setLength(stringBuilder.length() - 1);
resultList.add(stringBuilder.toString());
}
return resultList;
}
PS. Без оптимизации и обработки граничных случаев.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникла проблема по передаче изображения на серверДанный код написан для Android и работает только с версией 4
Доброго времени сутокПишу автотест, компилил его нормально через команду mvn test, но через время в командной строке стала появлятся ошибка...
Есть несколько паттернов, которые я объединяю через join("|")