我想在打印时格式化我的号码。我在用着
private static DecimalFormat formatter = new DecimalFormat("#00");
问题是它打印
-01
05
我想打印
-1
05
或者
-01
05
有没有办法在不使用 if 语句的情况下做到这一点?
我想在打印时格式化我的号码。我在用着
private static DecimalFormat formatter = new DecimalFormat("#00");
问题是它打印
-01
05
我想打印
-1
05
或者
-01
05
有没有办法在不使用 if 语句的情况下做到这一点?
您要求 DecimalFormat 做的比它做的更多。它仅格式化数字,如果您希望将该数字进一步格式化为String,则需要将其与“String” Formatter
(此处为 javadoc)结合起来。
Formatter formatter = new Formatter(System.out);
DecimalFormat numFormatter = new DecimalFormat("#00");
formatter.format("%3s\n", numFormatter.format(-3));
formatter.format("%3s\n", numFormatter.format(11));
formatter.format("%3s\n", numFormatter.format(2));
输出
-03
11
02
请注意,字符串格式化程序将所有字符串对齐为三个字符宽。如果您输入的值大于三个字符,那么它将溢出 3 的 [width](这可能是您想要的)。