Начните с разбивки входной строки на «слова».Это может быть легко или сложно в зависимости от того, как вы определяете «слово».Для слов, просто разделенных любым количеством пробелов, что-то вроде этого будет хорошо работать:
String[] words = nfAddr.split("\\s+");
Теперь, когда у вас есть отдельные слова, соберите их в строки желаемой максимальной длины, добавивпробелы между ними, а затем соедините результирующие строки вместе с разрывами строк между ними.Вот пример простой процедуры, чтобы сделать это:
static public String formatParagraph(String text, int maxWidth)
{
String[] words = text.split("\\s+");
StringBuilder pp = new StringBuilder();
StringBuilder line = new StringBuilder();
for (String w : words) {
if (line.length() + w.length() + 1 > maxWidth) {
if (pp.length() > 0) {
pp.append(System.lineSeparator());
}
pp.append(line.toString());
line.setLength(0);
}
if (line.length() > 0) {
line.append(' ');
}
line.append(w);
}
if (line.length() > 0) {
if (pp.length() > 0)
pp.append(System.lineSeparator());
pp.append(line);
}
return pp.toString();
}