Ответ 1
Bugs..
System.out.printf("%s%13s\n", "TarrifType", "AnnualCost");
System.out.printf("%s%f\n", "String", 243.08);
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)
Любая идея, что не так?
Bugs..
System.out.printf("%s%13s\n", "TarrifType", "AnnualCost");
System.out.printf("%s%f\n", "String", 243.08);
Какая ошибка - это %\n
в первой строке. Обратите внимание, что %
является специальным символом в строке формата, указывающей, что спецификатор формата следует. \n
после %
не является допустимым спецификатором формата.
Если вы хотите напечатать знак процента, затем удвойте его в строке формата: %%
Если вы хотите напечатать новую строку, используйте %n
, а не %\n
.
Проблема в вашей форматированной строке состоит в том, что вы смешивали два способа выполнения новой строки: %n
и \n
. Первый говорит, что форматировщик ставит новую строку в любом формате, который требуется платформе, тогда как последний ставит только буквальную новую строку char. Но то, что вы написали, было %\n
, что означает, что вы ускользаете от новой строки char, и то, что взорвалось.
Вы также забыли запятую между "String" и 243.08 во втором вызове. И btw, %d
форматирует целое число, поэтому вы, вероятно, не хотите его, если пытаетесь распечатать 243.08.