JAVA编程思想 13.5.4 java 字符串> 格式化字符> 购物收据

import  java.util.Formatter;
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(
" %-15.15s   %5s   %10.2f\n " " Tax " , "" ,total * 0.06 );
     f.format(
" %-15.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();
    }
    
    
/*
    %[argument_index$][flag][width][.precision]conversion
    在默认的情况下,数据是右对齐,通过“-”标志来改变对齐方向
    width可以用于各种类型的数据转换
    precision不是所有类型的数据都能使用precision,用于不同数据时的意义不同。
         1.应用于String时,它表示打印String时输出字符的最大数量。
         2.应用于浮点数时,它表示小数部分显示出来的位数(默认是6位小数),如果小数位数过多四舍五入,太少尾部补零。
         3.应用于整数时,由于整数没有小数部分,则会触发异常。
    
     
*/
    
}


  类型转换字符
d 整数类型
e 浮点数(科学计数)
c Unicode字符
x 整数(十六进制)
b Boolean值
h 散列码(十六进制)
s String % 字符%
f 浮点数(十进制)     

你可能感兴趣的:(java,编程,C++,c,F#)