以下是给我错误的printf语句:
System.out.printf("%-*s%*s", dateTimeWidth, dateTime, locationWidth, location);
我希望dateTime打印左对齐,宽度为dateTimeWidth,要打印的位置与width locationWidth右对齐。 locationWidth和dateTimeWidth都以整数形式传入。
这是我得到的错误:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '-'
at java.util.Formatter.checkText(Formatter.java:2503)
at java.util.Formatter.parse(Formatter.java:2485)
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 TicketMaker.drawTicket(TicketMaker.java:43)
at TicketMaker.main(TicketMaker.java:12)
我认为我的语法有问题,但我不确定我做错了什么。
有星号的printf信息 here
答案 0 :(得分:2)
在使用printf之前声明一个额外的变量:
String format = "%-" + dateTimeWidth + "s%" + locationWidth + "s";
System.out.printf(format, dateTime, location);