java.util.UnknownFormatConversionException:
System.out.printf("%s%13s%\n", "TarrifType", "AnnualCost");
System.out.printf("%s%d.%n", "String" 243.08);
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '
at java.util.Formatter.checkText(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at ModelComparison.main(ModelComparison.java:12)
Aucune idée de quoi de mal?
source d'informationauteur Saurabh Kumar
Vous devez vous connecter pour publier un commentaire.
Bugs..
http://ideone.com/USOx1
Ce qui est mauvais, c'est la
%\n
dans la première ligne. Notez que le%
est un caractère spécial dans un format de chaîne de caractères qui indique qu'un spécificateur de format de la façon suivante. Le\n
après la%
n'est pas valide d'un spécificateur de format.Si vous voulez imprimer un signe de pourcentage, puis double dans la chaîne de format:
%%
Si vous voulez imprimer un retour à la ligne, puis utiliser
%n
pas%\n
.Le problème dans votre chaîne de format est que vous mélangé les deux façons de faire de saut de ligne:
%n
et\n
. L'ancien dit le formateur à mettre un saut de ligne dans quelque format que ce soit la plate-forme nécessite, tandis que le second met en seulement un littéral newline char. Mais ce que vous avez écrit était%\n
ce qui signifie que vous tentez de fuir le saut de ligne char, et c'est ce qui explosent.Vous avez aussi oublié une virgule entre "Chaîne" et 243.08 dans le deuxième appel. Et btw,
%d
formats un entier, de sorte que vous ne voulez probablement pas si vous essayez d'imprimer 243.08.