乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      java.util.Formatter 詳解

       @IT小小鳥@ 2012-01-29

      java.util.Formatter 詳解

      一、java.util.Formatter

       

      java.util.Formatter JDK1.5新增的類庫,功能很強大,但是不好掌握,就像下棋一樣,知道如何走棋子,和熟練應用完全是兩碼事。

       

      格式化主要用在文本輸出方面,比如,數(shù)字、日期、金額等,還有類似超市的購物單小票等等,都會用到格式化輸出的工具。在此類沒出現(xiàn)之前,只能通過空格縮進或這個制表符來對單據(jù)等格式做一些控制,現(xiàn)在只要掌握java.util.Formatter,一切問題就解決了。

       

      shut!有關這個類javadoc文檔太難看懂了,通過猜測、嘗試、查看源碼、對文檔斷章取義基本搞明白了,寫了下面的例子:

       

      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);
                     
      //格式化輸出字符串和數(shù)字
                      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--------");
                     
      //日期的格式化,并將格式化結(jié)果存儲到一個字符串變量中
                      String s = String.format(
      "當前日期:%1$tY-%1$tm-%1$te", c);
                      System.out.println(s);
                     
      //2$:取第二個參數(shù)
                     
      //-: 指定為左對齊,默認右對齊
                     
      //5:最大輸出寬度為20,不夠會補空格,實際若超過則全部輸出
                     
      //.2:在此表示輸出參數(shù)2的最大字符數(shù)量,如果是浮點數(shù)字,則表示小數(shù)部分顯示的位數(shù)
                     
      //s :表示輸入?yún)?shù)是字符串
                      f1.format(
      "%2$-5.2s %1$2s", "123", "456");

                     
      //將格式化的結(jié)果存儲到字符串
                      System.out.println(
      "\n--------");
                      String fs = String.format(
      "身高體重(%.2f , %d)", 173.2, 65);
                      System.out.println(fs);

                     
      //printf()本質(zhì)上也是用System.out作為輸出目標構(gòu)造Formatter對象
                     
      //調(diào)用format方法,并將printf的參數(shù)傳給format方法而得。
                      System.out.println(
      "\n--------");
                      System.out.printf(
      "身高體重(%.2f , %d)", 180.2, 65);


              }
      }

       

      運行結(jié)果:

      格式化輸出:a 1235
      --------
      當前日期:2009-07-16
      --------
      當前日期:2009-07-16
      45        123
      --------
      身高體重(173.20 , 65)

      --------
      身高體重(180.20 , 65)
      Process finished with exit code 0

       

      總結(jié):

      1java.util.Formatter功能強大,主要用于自由格式的制定,也可以指定金額、日期等格式。但以使用方便為原則。

       

      2、其他格式化類:

      java.text.DateFormatSymbols
      java.text.DecimalFormatSymbols
      java.text.FieldPosition
      java.text.Format
                      java.text.DateFormat
                              java.text.SimpleDateFormat
                      java.text.MessageFormat
                      java.text.NumberFormat
                              java.text.ChoiceFormat
                              java.text.DecimalFormat

       

      3、String.format()System.out.printf()方法底層也是通過此類方法調(diào)用實現(xiàn)的。

       

      4、Calendar類用來表示系統(tǒng)抽象時間,是日期格式化等操作中最重要的一個類,這個類的實例化方式是:

      Calendar rightNow = Calendar.getInstance();

      并且可以通過下面的方法改變實例所表示的抽象時間:

      void setTime(Date date)
               
      使用給定的 Date 設置此 Calendar 的時間。
      void setTimeInMillis(long millis)
               
      用給定的 long 值設置此 Calendar 的當前時間值。

      有關日期的格式化還比較復雜,不光與現(xiàn)實方式有關,其實還與時區(qū)、國家習慣等等有關,因此在處理日期格式化問題上一定要慎重對待,沒有理由不用專門的類做處理。

       

      二、java.text.Format

       

      Format 是一個用于格式化語言環(huán)境敏感的信息(如日期、消息和數(shù)字)的抽象基類。

       

      光從類的層次結(jié)構(gòu)上看,Java對格式的處理也算費了大勁了,但還是不怎么好用。

       

      消息格式化類比較讓人郁悶,SUNAPI文檔看起來好像翻譯的有毛病。

       

      import java.text.MessageFormat;
      import java.util.Date;

      /**
      *
      消息格式化類的使用
      *
      * @author leizhimin 2009-7-29 23:09:41
      */

      public class TestMsgFormat {
             
      public static void main(String[] args) {
                      String msg =
      "歡迎光臨,當前({0})等待的業(yè)務受理的顧客有{1}位,請排號辦理業(yè)務!";
                      MessageFormat mf =
      new MessageFormat(msg);
                      String fmsg = mf.format(
      new Object[]{new Date(), 35});
                      System.out.println(fmsg);
              }
      }

       

      歡迎光臨,當前(09-7-29 下午11:17)等待的業(yè)務受理的顧客有35位,請排號辦理業(yè)務!

      Process finished with exit code 0

       

      注意,這個參數(shù)索引時{0}{9}的非負整數(shù),多了不認!

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多