Обработка списка ArrayList Java

172
07 декабря 2017, 00:30

Есть список:

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"

Что-то не могу логически сообразить, как сделать маленький компактный код для этой задачи. Помогите, пожалуйста!

Answer 1

Объявляя нетипизированную коллекцию:

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. Без оптимизации и обработки граничных случаев.

READ ALSO
Ошибка POST запроса с типом содержимого multipart/form-data

Ошибка POST запроса с типом содержимого multipart/form-data

Возникла проблема по передаче изображения на серверДанный код написан для Android и работает только с версией 4

181
Perhaps you are running on a JRE rather than a JDK? Ошибка компиляции maven проекта

Perhaps you are running on a JRE rather than a JDK? Ошибка компиляции maven проекта

Доброго времени сутокПишу автотест, компилил его нормально через команду mvn test, но через время в командной строке стала появлятся ошибка...

157
Java: запись данных с консоли в файл

Java: запись данных с консоли в файл

При записи данных с консоли в файл сбивается кодировка

248
Java. Замена по регулярному выражению

Java. Замена по регулярному выражению

Есть несколько паттернов, которые я объединяю через join("|")

321