BreakIterator is one of those classes that nobody ever remembers but when you need it it comes in handy. Apache word utils and guava splitter contain many ways to split or divide words based on characters but in some cases it might be to much. I answered a question on java ranch where someone wanted to divide a string into substrings with a maximum length not breaking in the middle of a word. The substring should end with the last character of a word or with a period.
Below we will use BreakIterator to loop through each element in order appending each element of the String to a StringBuilder. When the length of StringBuilder plus the length of the next element in the String reaches the maximum defined length we will break the string and add it to an ArrayList.