2010-06-07 4 views
1

J'essaie de positionner une chaîne à une certaine position de départ sur une ligne, quel que soit l'endroit où le texte précédent s'est terminé. Par exemple:Java Formatter spécifier la position de départ pour le texte

Mandatory arguments to long options are mandatory for short options too. 
    -a, --all     do not ignore entries starting with . 
    -A, --almost-all   do not list implied . and .. 

L'explication des options commence à la position 30 quel que soit le texte précédent. Comment faites-vous cela avec java.util.Formatter? J'ai testé avec les arguments de largeur (%30s) et de précision (%.30), et aucun ne fournit le résultat souhaité.

+0

Si vous utilisez Apache Commons CLI, tout cela serait fait pour vous, y compris l'analyse des arguments d'option, et la mise en forme du texte d'aide (http://commons.apache.org/cli/) – skaffman

+0

La question Il ne s'agit pas nécessairement d'analyser les options. – dplass

+0

@dplass: C'est pourquoi je ne l'ai pas posté comme réponse. Mais si les arguments d'analyse et de formatage sont l'objectif final, il ne sert à rien de réinventer la roue. – skaffman

Répondre

2

Vous pouvez utiliser le paramètre 'width', comme ceci:

System.out.println(String.format("%-30s%s", " -a, --all", "do not ignore entries starting with .")); 
    System.out.println(String.format("%-30s%s", " -A, --almost-all", "do not list implied . and ..")); 

modifier
Aperçu complet, si vous êtes intéressé. Ce n'est pas grand du tout, la fonctionnalité de formatage est assez limitée.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax

+0

merci! Justifier le formateur précédent est ce que je cherchais. J'ai lu les javadocs et la réponse ne me venait pas à l'esprit. – purecharger

Questions connexes