Java printf 错误 "Exception in thread "main" java.util.UnknownFormatConversionException: 转换 = '4'"

Java printf error "Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '4'"

我的这段代码:

    System.out.printf("%f\t\t %.1f %4-s", precipitation[0], temps[0], "Jan.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[1], temps[1], "Feb.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[2], temps[2], "Mar.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[3], temps[3], "Apr.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[4], temps[4], "May");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[5], temps[5], "Jun.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[6], temps[6], "Jul.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[7], temps[7], "Aug.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[8], temps[8], "Sep.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[9], temps[9], "Oct.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[10], temps[10], "Nov.");
    System.out.printf("%f\t\t %.1f %4-s", precipitation[11], temps[11], "Dec.");

错误:

线程中出现异常 "main" java.util.UnknownFormatConversionException:转换 = '4' 在 java.util.Formatter.checkText(来源不明) 在 java.util.Formatter.parse(来源不明) 在 java.util.Formatter.format(来源不明) 在 java.io.PrintStream.format(来源不明) 在 java.io.PrintStream.printf(来源不明) 在 Climate2.main(Climate2.java:71)

谁能告诉我为什么?

precipitation[0] 和 temps[0] 的示例值为 5.4f 和 51.8f

改变

%4-s

%-4.4s 

将所有字符串截断为 4 位长度