我正在尝试格式化一个字符串,使'$'接近价格。

例如:

Oranges     3     $3.00     $9.00

但是我目前有:
Oranges     3 $    3.00 $    9.00

这是我的代码:(注意:“price”和“total”是double数据类型)
System.out.printf("%-25s %10s $%10s $%10s", item, quantity, price, total);

我想在每个输出之间都留有空隙,但找不到找到结果的方法
我想要的。有什么办法可以解决这个问题?

最佳答案

尝试

System.out.printf("%-25s %10s %10s %10s", item, quantity, "$" + price, "$" + total);

输出
Oranges                            3       $3.0       $9.0

或最重要的是,使用格式化程序方法
    String format(double d) {
        return String.format("$%.2f", d);
    }
...
    System.out.printf("%-25s %10s %10s %10s", item, quantity, format(price), format(total));

输出
Oranges                            3      $3.00      $9.00

09-08 07:08