Java formatage de sortie pour les Chaînes
Je me demandais si quelqu'un peut me montrer comment utiliser la méthode de mise en forme pour les Cordes de Java.
Par exemple, Si je veux la largeur de l'ensemble de mes sortie à la même
Par exemple, Supposons que je veux toujours ma sortie à la même
Name = Bob
Age = 27
Occupation = Student
Status = Single
Dans cet exemple, toutes les données de sortie sont parfaitement mis en forme sous les uns des autres; Comment pourrais-je l'obtenir avec la méthode de mise en forme.
- De quoi avez-vous réellement envie de savoir que la documentation et chaîne de format de documentation ne se montrent pas vous?
- Comment puis-je régler la largeur, de sorte que mes cordes toujours de sortie selon que la largeur
- vous utilisez le spécificateur de largeur, par exemple, %10s pour être d'une largeur de 10.
- Vous semblez avoir été donné une exigence, vous êtes réticent à l'entraînement pour vous-même. Je ne peux que supposer que ce sont les devoirs?
- En quelque sorte, ce n'est qu'un problème dans le programme, je travaille pour ma classe.
Vous devez vous connecter pour publier un commentaire.
EDIT: C'est un très primitive de réponse, mais je ne peux pas le supprimer car il a été accepté. Voir les réponses ci-dessous pour une meilleure solution si
Pourquoi ne pas tout simplement de générer un espace de chaîne de façon dynamique à insérer dans la déclaration.
Donc, si vous voulez tout à commencer sur le 50e caractère...
Mis tout cela dans une boucle et initialiser/définir la "clé" et "valeur" des variables avant chaque itération et vous êtes dorée. Je voudrais aussi utiliser le
StringBuilder
classe trop qui est plus efficace.La sortie ressemble à ceci:
Comme une référence, je recommande Javadoc sur la syntaxe de formatage
System.out.printf
, c'est à direSystem.out.printf("%-20s= %s" , "label", "content" );
System.out.printf
appels et ne pas mettre les caractères de saut de ligne entre chaque sortie. Vous pouvez contourner ce problème en ajoutant un\n
caractère à la fin de votre chaîne de format si."="
apparaissent avant la justification, mais ont encore 20 caractères exactement entre l'index 0 et le début de contenu? (Ma solution actuelle est de faire un distinct chaîne, y compris la"="
et le format que dans la place. Est-il une meilleure solution?)System.out.println(String.format("%-20s %s" , "label =", "content" ));
d'obtenir ce que l'OP veut. La différence est que vous ajoutez le signe "=" à l'étiquette de la chaîne. Vous êtes également en mesure d'appelerSystem.out.format(...)
directement si vous le souhaitez. Vous avez seulement besoin de le faire viaString
pour des constructions comme lesString str = String.format(...)
.Si vous voulez un minimum de 4 caractères, par exemple,
Pour répondre à vos questions à jour que vous pouvez faire
imprime
Pour les valeurs décimales, vous pouvez utiliser DecimalFormat
et de sortie sera:
Pour plus de détails, regardez ici:
http://docs.oracle.com/javase/tutorial/java/data/numberformat.html