我想要打印的内容:
Coca-Cola $ 11.00
Pepsi $ 9.45
Sprite $ 8.50
最终印刷结果:
Coca-Cola $ 11
Pepsi $ 9.45
Sprite $ 8.5
我的代码:
public void test(){
for (int i = 0; i<20; i++){
System.out.print(product[i]);
System.out.println(String.format("%20s%n", "$ "+price[i]));;
}
我正在寻找这个2个小时,也许我指的是我的搜索条件并不是那么好,但是我会试着通过简单的询问来避免更多的搜索和痛苦......抱歉不够了解在论坛上正确找到这个或指定我的标题,非常感谢你。
答案 0 :(得分:0)
您的代码问题在于它首先打印产品然后它会尝试打印格式化的字符串。
当它分别打印这些东西时,战斗已经失败。因为第二个印刷品需要知道产品的长度,以确定需要多少空间来调整价格。这个数字肯定不会是一样的。
请改为尝试:
System.out.printf("%-20s$ %5.2f\n", product[i], price[i]);
输出:
Coca-Cola $ 11.00
Pepsi $ 9.45
Sprite $ 8.50
%-20s
将证明产品名称是合理的,填写产品名称后所需的空格数。
要对齐小数点,我们还需要指定格式化数字的总长度。对于%5.2
,我们要求总长度为5,11.00
非常合适,如果价格大于99,您可以调整此数字。
答案 1 :(得分:0)
string.format的语法 public static String format(String format,Object ... args)
参数
format - 这是一个格式字符串。 args-这是格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略额外参数。参数的数量是可变的,可能为零。