格式化主要用在文本輸出方面,比如,數字、日期、金額等,還有類似超市的購物單小票等等,都會用到格式化輸出的工具。在此類沒出現之前,只能通過空格縮進或這個制表符來對單據等格式做壹些控制,現在只要掌握java.util.Formatter,就可以熟練應用了 。
舉例如下:
import java.util.Calendar;
import java.util.Formatter;
import java.util.GregorianCalendar;
/**
* Formatter測試
*
* @author leizhimin 2009-7-16 16:31:02
*/
public class TestFormatter {
public static void main(String[] args) {
//%[argument_index$][flags][width][.precision]conversion
Formatter f1 = new Formatter(System.out);
//格式化輸出字符串和數字
f1.format("格式化輸出:%s %d", "a", 1235);
System.out.println("\n--------");
//日期的格式化
Calendar c = new GregorianCalendar();
f1.format("當前日期:%1$tY-%1$tm-%1$te", c);
System.out.println("\n--------");
//日期的格式化,並將格式化結果存儲到壹個字符串變量中
String s = String.format("當前日期:%1$tY-%1$tm-%1$te", c);
System.out.println(s);
//2$:取第二個參數
//-: 指定為左對齊,默認右對齊
//5:最大輸出寬度為20,不夠會補空格,實際若超過則全部輸出
//.2:在此表示輸出參數2的最大字符數量,如果是浮點數字,則表示小數部分顯示的位數
//s :表示輸入參數是字符串
f1.format("%2$-5.2s %1$2s", "123", "456");
//將格式化的結果存儲到字符串
System.out.println("\n--------");
String fs = String.format("身高體重(%.2f , %d)", 173.2, 65);
System.out.println(fs);
//printf()本質上也是用System.out作為輸出目標構造Formatter對象
//調用format方法,並將printf的參數傳給format方法而得。
System.out.println("\n--------");
System.out.printf("身高體重(%.2f , %d)", 180.2, 65);
}
}
運行結果:
格式化輸出:a 1235
--------
當前日期:2009-07-16
--------
當前日期:2009-07-16
45 123
--------
身高體重(173.20 , 65)
--------
身高體重(180.20 , 65)
Process finished with exit code 0