2017-09-29 1 views
-1

Je dois justifier à gauche les noms des stations et justifier à droite les résultats du numéro dans l'exemple ci-dessous pour une affectation, c.-à-d. Que Vegan Station doit être justifiée à gauche dans un champ de largeur 15, mais quand j'essaye cela me donne une erreur pour le% 2d pour le résultat. Si quelqu'un pouvait m'aider à comprendre comment le formater correctement, je l'apprécierais vraiment.Sortie de formatage/Champ justifiant de largeur

System.out.printf("\n" + "\n" + "You rated each station as follows"); 

System.out.printf("\n" + "%-15s, Vegan Station" + "%2d", vegan); 
System.out.printf("\n" + "Pasta Station " + "%2d" , pasta); 
System.out.printf("\n" + "Waffle Station " + "%2s", waffle + "\n"); 

est ici l'erreur:

java.util.MissingFormatArgumentException: Format specifier '%2d' 
at java.util.Formatter.format(Formatter.java:2519) 
at java.io.PrintStream.format(PrintStream.java:970) 
at java.io.PrintStream.printf(PrintStream.java:871) 
at Survey.main(Survey.java:127) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
+1

Pourriez-vous inclure les types de végétalien, les pâtes et les gaufres? – jrtapsell

Répondre

1

Vous chambouler vos citations. Il devrait être:

System.out.printf("%n%-15s%2d", "Vegan Station", vegan); 

Gardez la chaîne de format comme une seule chaîne, et les variables à suivre dans une liste délimitée par des virgules.

Également pour les nouvelles lignes, n'utilisez pas \n mais utilisez plutôt %n lors de l'utilisation de printf.