繁体   English   中英

Java格式字符串间距

[英]Java Format String Spacing

我一直在论坛中寻找有关此问题的确切答案,但一直未能做到。 这是我的代码:

String item = String.format("%-6s $%-6.2f Number in Inventory: %-3d", this.getBarcode(), this.getPrice(), this.getInventory());

输入的两个项目的输出看起来像这样:

DR4423 $700.04 Number in Inventory: 24 
LD342  $1234.24 Number in Inventory: 425

输出应如下所示,在价格中要有一个额外的字符空间,以使“库存中的数字”排队:

DR4423 $ 700.04 Number in Inventory: 24 
LD342  $1234.24 Number in Inventory: 425

如何使“库存编号”排队? 看起来示例中的第一项丢失了一个空字符空间,因为它只有5位数字而不是价格的6位数字。 先谢谢您的帮助。

我认为您需要使用:

String.format("%-6s $%-7.2f Number in Inventory: %-3d", this.getBarcode(), this.getPrice(), this.getInventory());

或者,如果您想在前面添加空间:

String.format("%-6s $%#7.2f Number in Inventory: %-3d", this.getBarcode(), this.getPrice(), this.getInventory());

注意%-7而不是%-6 句点被视为字符。

在价格和“数字”之间插入\\t应该可以正常工作。

-%-6.2f表示您希望传递的数字向左对齐,例如:

|123,45|
|123,40|
|123,00|
|12,00 |
|1,00  |

如果您想将数字右对齐,例如:

|123,45|
|123,40|
|123,00|
| 12,00|
|  1,00|

然后只需删除此-

从开始,您还应该将最小已用长度设置为7 . 也需要一些空间

| 700.04|
 1234567

您需要7个字符。

因此,请尝试使用%-6s $%7.2f Number in Inventory: %-3d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM