Из кода выводится список сформированных по длине словосочетания, которые в дальнейшем печатаются на 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;
}
Если после цикла в 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]
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу отслеживать событие открытия SpinnerПопробовал повесить на него View
Пишу тест, в котором хочу обработать нажатие на элемент списка recyclerView
Есть Бд оттуда принимаются данные на Jsf но когда в бд записывается запись из утсровта то Jsf страницу надо обнавть чтоб там отобразились изменеия...