Comment mettre en retrait une multi-ligne du paragraphe écrits dans la console java
Quelqu'un peut-il suggérer une méthode pour la rédaction d'un multi-ligne de Chaîne à un système de console et d'avoir que des blocs de texte en retrait? Je suis à la recherche de quelque chose de relativement léger parce qu'il est uniquement utilisé pour l'affichage de l'aide pour un programme en ligne de commande.
- Avez-vous une chaîne de caractères qui contient des retours à la ligne (ou voulez-vous auto-emballage, ou avez-vous juste avez plusieurs lignes et souhaitez afin de les harmoniser dans certaines forme d'un tableau? En bref: merci de donner un exemple d'entrée et de sortie souhaitée.
- Je voudrais d'auto-conditionnement. Quelque chose de similaire à la façon dont l'homme pages sont mises en forme. Je m'attendais à quelque chose de léger, mais peut-être une sorte de modèle de langue est le seul moyen.
- Ce qui sur le fractionnement de la chaîne à des espaces et l'insertion d'un saut de ligne à chaque fois qu'un mot dépasse la largeur de la ligne?
- J'espérais qu'il y avait quelque chose de déjà là pour le faire pour moi. J'ai fait une petite recherche et il semble que quelque chose d'aussi simple que d'obtenir la largeur de la console n'est pas pris en charge sur une plate-forme de façon. Je ne suis pas sûr de savoir pourquoi cela ne peut pas être plus d'attention, mais je pense qu'il devrait. Je ne vois pas la ligne de commande de s'en aller de sitôt.
- Ces réponses peuvent être utile: stackoverflow.com/questions/19425508/...
Vous devez vous connecter pour publier un commentaire.
REMARQUE: L'approche décrite ci-dessous ne répondent pas aux exigences de mises à jour décrite par @BillMan dans la question de commentaires. Cette ne automatiquement automatiquement les lignes qui sont plus longs que la console de la longueur de la ligne - seulement utiliser cette approche si l'emballage n'est pas un problème.
Comme une simple option, vous pouvez utiliser
String.replaceAll()
comme suit:Si vous n'êtes pas familier avec les expressions régulières Java, il fonctionne comme suit:
(?m)
permet mode multi-lignes. Cela signifie que chaque ligne dansoutput
est pris en compte individuellement, au lieu de traiteroutput
sur une seule ligne (qui est la valeur par défaut).^
est une expression régulière correspondant au début de chaque ligne.\t
les causes de chaque match de la précédente regex (c'est à dire le début de chaque ligne) pour être remplacé par un caractère de tabulation.Comme un exemple, le code suivant:
Produit de cette sortie:
replaceAll()
il n'y existe pas.Avec JDK/12 early access crée, on peut maintenant faire usage de la
indent
de l'API de la classe String qui est actuellement disponible en vertu de la fonction d'aperçu et peut être utilisé comme :et la sortie du code ci-dessus serait
L'actuel documenté spécification de l'API est comme suit: