Java編程思想

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

        %:表示需要進行格式化

        [argument_index$]:

        [flag]:默認右對齊,“-”表示左對齊

        [width]:寬度

        [.precision]:如果是字符串,表示打印輸出的最大位數;如果作用於浮點數,則表示打印輸出的小數點後的位數

        conversion:s:字符串  d:數字  f:浮點數 (和c語言有些相似)

    最常見的應用是控制一個域的最小尺寸,這可以通過指定width來實現。Formatter對象通過在必要時添加空格,來確保一個域至少達到某個長度。在默認的情況下,數據是右對齊,不過可以使用“-”標誌來改變其對齊方向。

    與width相對的是precision,它用來指明最大尺寸。width可以應用於各種類型的數據轉換,並且其行爲方式都一樣。precision則不然,不是所有類型的數據都能使用precision,而且,應用於不同類型的數據轉換時,precision的意義也不同。在將precision應用於String時,它表示打印String時輸出字符的最大數量。而在將precision應用於浮點數時,它表示小數部分要顯示出來的位數(默認是6位小數),如果小數位過多則舍入,太少則在尾部補零。由於整數沒有小數部分,所以precision無法應用於整數,如果你對整數應用precision,則會觸發異常。

    下面的程序應用格式修飾符來打印一個購物收據:


 

[java] view plain copy
  1. import java.util.Formatter;  
  2.   
  3. /** %[argument_index$][flags][width][.precision]conversion */  
  4. public class StringFormatUtils {  
  5.     private double total=0;  
  6.       
  7.     private Formatter f=new Formatter(System.out);  
  8.       
  9.     public void printTitle(){  
  10.         f.format("%-15s %5s %10s\n""Items","Qty","Price");  
  11.         f.format("%-15s %5s %10s\n""-----","---","-----");  
  12.     }  
  13.       
  14.     public void print(String name,int qty,double price){  
  15.         f.format("%-15.15s %5d %10.2f\n", name,qty,price);  
  16.         total+=price;  
  17.     }  
  18.       
  19.     public void printTotal(){  
  20.         f.format("%-15s %5s %10.2f\n""Tax","",total*0.06);  
  21.         f.format("%-15s %5s %10s\n""","","-----");  
  22.         f.format("%-15s %5s %10.2f\n""Total","",total*1.06);  
  23.     }  
  24.       
  25.     public static void main(String[] args){  
  26.           
  27.         StringFormatUtils stringFormatUtils=new StringFormatUtils();  
  28.         stringFormatUtils.printTitle();  
  29.         stringFormatUtils.print("Jack Maic Beans"44.25);  
  30.         stringFormatUtils.print("Princess Peas"35.1);  
  31.         stringFormatUtils.print("Three Bears Porridge"1,14.29);  
  32.         stringFormatUtils.printTotal();  
  33.     }  
  34.       
  35.       
  36. }  
[java] view plain copy
  1.   
[java] view plain copy
  1. 輸出結果:  
[java] view plain copy
  1.   
Items             Qty      Price
-----             ---      -----
Jack Maic Beans     4       4.25
Princess Peas       3       5.10
Three Bears Por     1      14.29
Tax                         1.42
                           -----
Total                      25.06

格式化字符串,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章