使用java的printf方法打印问题

时间:2014-04-28 08:09:51

标签: java printing

我正在尝试使用printf打印百分号。 当我使用以下内容时:

System.out.printf("%-3d%%\n",10);
System.out.printf("%-3d%%\n",100);
System.out.printf("%-3d%%\n",0);

我最终得到了:

10 %  
100%
0  %

我如何实现以下

10%   - 1 space after % sign
100%  - no space 
0%    - 2 spaces after % sign

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

    System.out.printf("%-4.4s\n",10 + "%");
    System.out.printf("%-4.4s\n",100+ "%");
    System.out.printf("%-4.4s\n",0+ "%");

可以通过

验证
    System.out.printf("%-4.4s|\n",10 + "%");
    System.out.printf("%-4.4s|\n",100 + "%");
    System.out.printf("%-4.4s|\n",0+ "%");

产生

10% |
100%|
0%  |

答案 1 :(得分:1)

尝试使用DecimalFormat ..

    DecimalFormat df=new  DecimalFormat("###'%'");
    System.out.printf("%s\n",df.format(10));
    System.out.printf("%s\n",df.format(1));
    System.out.printf("%s\n",df.format(100));