Chaîne de taille divisé en lignes avec un maximum de longueur en java

String input = "THESE TERMS AND CONDITIONS OF SERVICE (the Terms) ARE A LEGAL AND BINDING AGREEMENT BETWEEN YOU AND NATIONAL GEOGRAPHIC governing your use of this site, www.nationalgeographic.com, which includes but is not limited to products, software and services offered by way of the website such as the Video Player, Uploader, and other applications that link to these Terms (the Site). Please review the Terms fully before you continue to use the Site. By using the Site, you agree to be bound by the Terms. You shall also be subject to any additional terms posted with respect to individual sections of the Site. Please review our Privacy Policy, which also governs your use of the Site, to understand our practices. If you do not agree, please discontinue using the Site. National Geographic reserves the right to change the Terms at any time without prior notice. Your continued access or use of the Site after such changes indicates your acceptance of the Terms as modified. It is your responsibility to review the Terms regularly. The Terms were last updated on 18 July 2011.";

//text copied from http://www.nationalgeographic.com/community/terms/

Je veux partager cette chaîne de taille en lignes et les lignes ne doivent pas le contenu plus que MAX_LINE_LENGTH caractères de chaque ligne.

Ce que j'ai essayé jusqu'à présent

int MAX_LINE_LENGTH = 20;    
System.out.print(Arrays.toString(input.split("(?<=\\G.{MAX_LINE_LENGTH})")));
//maximum length of line 20 characters

De sortie :

[THESE TERMS AND COND, ITIONS OF SERVICE (t, he Terms) ARE A LEGA, L AND B ...

Il provoque rupture de mots. Je ne veux pas de cela.
Au lieu de je veux obtenir une sortie comme ceci:

[THESE TERMS AND , CONDITIONS OF , SERVICE (the Terms) , ARE A LEGAL AND B ...

Une condition ajouté :
Si un mot de longueur est supérieure à MAX_LINE_LENGTH alors ce mot doit obtenir split.

Et la solution doit être sans aide extérieure pots.

InformationsquelleAutor Abhishek | 2011-09-23