Я читаю документацию для методов Formatter.format
и System.out.printf
(Java 6), и я пытаюсь практиковать то, что узнал. Я столкнулся с исключением, которое кажется мне необоснованным, или есть проблема понимания темы.Метод System.out.printf генерирует исключение флагов
Код я написал просто:
final int i = -15;
System.out.printf("%1$-+06d", i);
Что я ожидаю оказывает INT печатается в следующем формате
1) pad to left ; -
2) view the sign (négatif or positif); +
3) complete with left zeros; 0
4) print on 6 columns (characters); 6
Вместо этого, исключение, и я не знать почему:
Exception in thread "main" java.util.IllegalFormatFlagsException: Flags = '-+0'
at java.util.Formatter$FormatSpecifier.checkNumeric(Formatter.java:2935)
at java.util.Formatter$FormatSpecifier.checkInteger(Formatter.java:2890)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2643)
at java.util.Formatter.parse(Formatter.java:2480)
at java.util.Formatter.format(Formatter.java:2414)
at java.io.PrintStream.format(PrintStream.java:920)
at java.io.PrintStream.printf(PrintStream.java:821)
at cert.simo.formats.Test.main(Test.java:18)
Любые объяснения? Спасибо.