java中格式化输出字符

来源:互联网 发布:潮流计算的软件 编辑:程序博客网 时间:2024/04/29 06:37

System.out.format()

System.out.printf()


格式化说明符

%[argument_index$][flags][width][.precision] conversion

width:控制一个域的最小尺寸,在默认情况下,数据是右对齐的,不过可以使用"-"来改变对齐方向

precision:指明最大尺寸

width可以应用于各种类型的数据转换,并且其行为方式都一样。precision则不然,不是所有类型的数据都能使用precision,而且,应用与不同类型的数据转换时,precision的意义也不同。在将precision应用与String时,它表示答应String时输出字符的最大数量。而用于浮点数时,它表示小数部分要显示出来的位数(默认是6位),如果小数位数过多则舍入,太少则末尾补零。precision无法用于整数。


//: strings/Receipt.javaimport java.util.*;public class Receipt {  private double total = 0;  private Formatter f = new Formatter(System.out);  public void printTitle() {    f.format("%-15s %5s %10s\n", "Item", "Qty", "Price");    f.format("%-15s %5s %10s\n", "----", "---", "-----");  }  public void print(String name, int qty, double price) {    f.format("%-15.15s %5d %10.2f\n", name, qty, price);    total += price;  }  public void printTotal() {    f.format("%-15s %5s %10.2f\n", "Tax", "", total*0.06);    f.format("%-15s %5s %10s\n", "", "", "-----");    f.format("%-15s %5s %10.2f\n", "Total", "",      total * 1.06);  }  public static void main(String[] args) {    Receipt receipt = new Receipt();    receipt.printTitle();    receipt.print("Jack's Magic Beans", 4, 4.25);    receipt.print("Princess Peas", 3, 5.1);    receipt.print("Three Bears Porridge", 1, 14.29);    receipt.printTotal();  }} /* Output:Item              Qty      Price----              ---      -----Jack's Magic Be     4       4.25Princess Peas       3       5.10Three Bears Por     1      14.29Tax                         1.42                           -----Total                      25.06*///:~