//:wx/Formatter/Receipt.java
package wx.Formatter;
import java.util.Formatter;
public class Reciept {
private double total = 0;
private Formatter f = new Formatter(System.out);
public void printTitle() {
f.format("%-15s%-15s%-15s/n","Item","Qty","Price");
f.format("%-15s%-15s%-15s/n","----","---","-----");
}
public void print(String name,int qty,double price) {
f.format("%-15s%-15d%-10.2f/n",name,qty,price);
total+=price;
}
public void printTotal(){
f.format("%-15s%-15s%-10.2f/n","Tax","",total*0.06);
f.format("%-15s%-15s%-15s/n","","","-----");
f.format("%-15s%-15s%-10.2f/n","Total","",total*1.06);
}
public static void main(String args[]){
Reciept reciept=new Reciept();
reciept.printTitle();
reciept.print("张三",4,1.00);
reciept.print("李四",5,1.000);
reciept.print("WW",1,1000.000);
reciept.printTotal();
}
}
执行的结果:
Item Qty Price
---- --- -----
张三 4 1.00
李四 5 1.00
ww 1 1000.00
Tax 60.12
-----
Total 1062.12
可以看出结果中,凡是第一项是中文的,原来设计的左对齐没有效果,那一行还是保持右对齐。