Java格式

Java格式,java,format,Java,Format,我试图格式化一个字符串,使“$”紧贴价格 例如: Oranges 3 $3.00 $9.00 但我现在拥有的是: Oranges 3 $ 3.00 $ 9.00 这是我的代码:(注意:“price”和“total”是双数据类型) 我希望在每个输出之间都有一个间隙,但我找不到一种方法来获得结果 我想要的。有什么办法可以解决这个问题吗?去掉价格和总数上的10个空格 System.out.printf("%-25s %10s $%s $%s", item

我试图格式化一个字符串,使“$”紧贴价格

例如:

Oranges     3     $3.00     $9.00
但我现在拥有的是:

Oranges     3 $    3.00 $    9.00
这是我的代码:(注意:“price”和“total”是双数据类型)

我希望在每个输出之间都有一个间隙,但我找不到一种方法来获得结果
我想要的。有什么办法可以解决这个问题吗?

去掉价格和总数上的10个空格

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

你能把它们转换成字符串输出吗?Double类型可以调用toString()方法,如下链接所示:

然后,您可以在每个字符串的顶部输出一个美元符号(如果将所有字符串加载到数组中,甚至可以循环遍历所有字符串,并向所有字符串添加一个美元符号)

这可能不是最好的选择,但我相信它会起作用。

试试看

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

Oranges                            3       $3.0       $9.0
Oranges                            3      $3.00      $9.00
或者,最好使用格式化程序方法

    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.0       $9.0
Oranges                            3      $3.00      $9.00
我建议使用,而不是自己制作。