Разделение строки на несколько разных строк в Java - PullRequest
0 голосов
/ 29 ноября 2011

У меня очень длинная строка, состоящая из слов пунктуации и пробелов.Я пытаюсь изменить строку, чтобы добавить новую строку (\n) после каждых x символов, но при сохранении целых слов.Например:

Злой человек обрызгивал невинных учеников лицом перцовым аэрозолем

С x = 20 выглядело бы так:

An evil human sprayed      21 chars
innocent students in       20 chars
the face with pepper       20 chars
spray                      end of string

Если слова будут разделены путем вставки \n после x символов, то слово должно оставаться в строке, тогда как в конце слова будет вставлена ​​новая строка.

Есть ли универсальный способ сделать это без большого количества сложного кода?

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Я бы написал:

s = s.replaceAll("(.{20,}?)\\s+", "$1\n");

Это позволит найти каждый экземпляр по меньшей мере из двадцати не-символов новой строки, за которым следует один или несколько пробельных символов, и заменить пробел новой строкой.Или, чтобы сделать x разрешимым во время выполнения (а не жестко закодированным как 20), я бы написал:

s = s.replaceAll("(.{" + x + ",}?)\\s+", "$1\n");
2 голосов
/ 29 ноября 2011

Взгляните на библиотеку Apache commons lang , в частности WordUtils # wrap () .

...