Не выводит одно слово при формировании списка словосочетаний

390
30 декабря 2016, 10:38

Из кода выводится список сформированных по длине словосочетания, которые в дальнейшем печатаются на image.
Не могу придумать условие, чтобы при этом условии печатало и одно слово. Может, нужен какой-то дополнительный if?

private List<String> divideText(String text) {
    String[] resSplit = text.split(" ");
    List<String> res = new LinkedList<String>();
    String resultForRes = "";
    int countLength = 0;
    for (int i = 0; i < resSplit.length; i++) {
        resultForRes += resSplit[i] + " ";
        countLength = resultForRes.length();
        if (countLength >= 8) {
            res.add(0, resultForRes);
            resultForRes = "";
            countLength = 0;
        }
    }
    return res;
}
Answer 1

Если после цикла в resultForRes что-то осталось, то это тоже стоит добавить в список (if после for). Это поможет и в ситуации, при которой в тексте всего одного слово с длиной менее 7 символов (или несколько слов, суммарная длина которых вместе с пробелами после них меньше 8 символов), и в ситуации, при которой последнее слово не попало в res из-за недостаточной длины.

private List<String> divideText(String text)
{
    String[] resSplit = text.split(" ");
    List<String> res = new LinkedList<>();
    String resultForRes = "";
    for (int i = 0; i < resSplit.length; i++)
    {
        resultForRes += resSplit[i] + " ";
        if (resultForRes.length() >= 8)
        {
            res.add(0, resultForRes);
            resultForRes = "";
        }
    }
    if (!resultForRes.isEmpty())
    {
        res.add(0, resultForRes);
    }
    return res;
}

Также стоит рассмотреть проблему того, что у вас пробелы добавляются не только между словами в словосочетании, но и после последнего слова. По идее, для первого слова в словосочетании должно быть resultForRes = resSplit[i], а для последующих - resultForRes += " " + resSplit[i].

READ ALSO
Отслеживать открытие Spinner

Отслеживать открытие Spinner

Хочу отслеживать событие открытия SpinnerПопробовал повесить на него View

364
Json java. Parse to string

Json java. Parse to string

Как правильно парсить данный json

473
Нажатие на элемент recyclerView

Нажатие на элемент recyclerView

Пишу тест, в котором хочу обработать нажатие на элемент списка recyclerView

560
Как динамически обновлять JSF страницу?

Как динамически обновлять JSF страницу?

Есть Бд оттуда принимаются данные на Jsf но когда в бд записывается запись из утсровта то Jsf страницу надо обнавть чтоб там отобразились изменеия...

426