Java String字串的格式化

來源:互聯網
上載者:User

標籤:java   string   格式化   

      JDK1.5中,String類新增了一個很有用的靜態方法String.format():
      format(Locale l, String format, Object... args) 使用指定的語言環境、格式字串和參數返回一個格式化字串。

      format(String format, Object... args) 使用指定的格式字串和參數返回一個格式化字串。format()方法中的字串格式參數有很多種轉換符選項,例如:日期、整數、浮點數等。

一、常規格式化


      例子:

<span style="font-family:Microsoft YaHei;font-size:14px;">public static void main(String[] args) {    String str=null;    str=String.format("Hi,%s", "飛龍");          // 格式化字串    System.out.println(str);                             // 輸出字串變數str的內容    System.out.printf("字母a的大寫是:%c %n", 'A');    System.out.printf("3>7的結果是:%b %n", 3>7);    System.out.printf("100的一半是:%d %n", 100/2);    System.out.printf("100的16進位數是:%x %n", 100);    System.out.printf("100的8進位數是:%o %n", 100);    System.out.printf("50元的書打8.5折扣是:%f 元%n", 50*0.85);    System.out.printf("上麵價格的16進位數是:%a %n", 50*0.85);    System.out.printf("上麵價格的指數表示:%e %n", 50*0.85);    System.out.printf("上麵價格的指數和浮點數結果的長度較短的是:%g %n", 50*0.85);    System.out.printf("上面的折扣是%d%% %n", 85);    System.out.printf("字母A的散列碼是:%h %n", 'A');}</span>
      運行結果:

<span style="font-family:Microsoft YaHei;font-size:14px;">Hi,飛龍字母a的大寫是:A3>7的結果是:false100的一半是:50100的16進位數是:64100的8進位數是:14450元的書打8.5折扣是:42.500000 元上麵價格的16進位數是:0x1.54p5上麵價格的指數表示:4.250000e+01上麵價格的指數和浮點數結果的長度較短的是:42.5000上面的折扣是85%字母A的散列碼是:41</span>
      這些字串格式參數不但可以靈活將其他資料類型轉換成字串,而且可以與各種標誌組合在一起,產生各種格式的字串


      例子:

<span style="font-family:Microsoft YaHei;font-size:14px;">public static void main(String[] args) {    String str=null;    str=String.format("格式參數$的使用:%1$d,%2$s", 99,"abc");      System.out.println(str);                                         System.out.printf("顯示正負數的符號:%+d與%d%n", 99,-99);    System.out.printf("最牛的編號是:%03d%n", 7);    System.out.printf("Tab鍵的效果是:% 8d%n", 7);    System.out.printf("整數分組的效果是:%,d%n", 9989997);    System.out.printf("一本書的價格是:%2.2f元%n", 49.8);}</span>
      運行結果:

<span style="font-family:Microsoft YaHei;font-size:14px;">格式參數$的使用:99,abc顯示正負數的符號:+99與-99最牛的編號是:007Tab鍵的效果是:       7整數分組的效果是:9,989,997一本書的價格是:49.80元</span>
二、常見日期時間格式化


      例子:

<span style="font-family:Microsoft YaHei;font-size:14px;">public static void main(String[] args) {    Date date=new Date();                                                  System.out.printf("全部日期和時間資訊:%tc%n",date);                   System.out.printf("年-月-日格式:%tF%n",date);    System.out.printf("月/日/年格式:%tD%n",date);    System.out.printf("HH:MM:SS PM格式(12時制):%tr%n",date);    System.out.printf("HH:MM:SS格式(24時制):%tT%n",date);    System.out.printf("HH:MM格式(24時制):%tR",date);}</span>
      運行結果:

<span style="font-family:Microsoft YaHei;font-size:14px;">全部日期和時間資訊:星期日十月28 13:53:24 CST 2007年-月-日格式:2007-10-28月/日/年格式:10/28/07HH:MM:SS PM格式(12時制):01:53:24 下午HH:MM:SS格式(24時制):13:53:24HH:MM格式(24時制):13:53</span>
三、格式化日期文字


      例子:

<span style="font-family:Microsoft YaHei;font-size:14px;">public static void main(String[] args) {    Date date=new Date();                                              String str=String.format(Locale.US,"英文月份簡稱:%tb",date);          System.out.println(str);                                               System.out.printf("本地月份簡稱:%tb%n",date);    str=String.format(Locale.US,"英文月份全稱:%tB",date);    System.out.println(str);    System.out.printf("本地月份全稱:%tB%n",date);    str=String.format(Locale.US,"英文星期的簡稱:%ta",date);    System.out.println(str);    System.out.printf("本地星期的簡稱:%tA%n",date);    System.out.printf("年的前兩位元字(不足兩位前面補0):%tC%n",date);    System.out.printf("年的後兩位元字(不足兩位前面補0):%ty%n",date);    System.out.printf("一年中的天數(即年的第幾天):%tj%n",date);    System.out.printf("兩位元字的月份(不足兩位前面補0):%tm%n",date);    System.out.printf("兩位元字的日(不足兩位前面補0):%td%n",date);    System.out.printf("月份的日(前面不補0):%te",date);}</span>
      運行結果:

<span style="font-family:Microsoft YaHei;font-size:14px;">英文月份簡稱:Oct本地月份簡稱:十月英文月份全稱:October本地月份全稱:十月英文星期的簡稱:Sun本地星期的簡稱:星期日年的前兩位元字(不足兩位前面補0):20年的後兩位元字(不足兩位前面補0):07一年中的天數(即年的第幾天):301兩位元字的月份(不足兩位前面補0):10兩位元字的日(不足兩位前面補0):28月份的日(前面不補0):28</span>
四、格式化時間字串


      例子:

<span style="font-family:Microsoft YaHei;font-size:14px;">public static void main(String[] args) {    Date date=new Date();                               // 建立日期對象    System.out.printf("2位元字24時制的小時(不足2位前面補0):%tH%n",date);    System.out.printf("2位元字12時制的小時(不足2位前面補0):%tI%n",date);    System.out.printf("2位元字24時制的小時(前面不補0):%tk%n",date);    System.out.printf("2位元字12時制的小時(前面不補0):%tl%n",date);    System.out.printf("2位元字的分鐘(不足2位前面補0):%tM%n",date);    System.out.printf("2位元字的秒(不足2位前面補0):%tS%n",date);    System.out.printf("3位元字的毫秒(不足3位前面補0):%tL%n",date);    System.out.printf("9位元字的毫秒數(不足9位前面補0):%tN%n",date);    String str=String.format(Locale.US,"小寫字母的上午或下午標記(英):%tp",date);    System.out.println(str);                          // 輸出字串變數str的內容    System.out.printf ("小寫字母的上午或下午標記(中):%tp%n",date);    System.out.printf("相對於GMT的RFC822時區的位移量:%tz%n",date);    System.out.printf("時區縮寫字串:%tZ%n",date);    System.out.printf("1970-1-1 00:00:00 到現在所經過的秒數:%ts%n",date);    System.out.printf("1970-1-1 00:00:00 到現在所經過的毫秒數:%tQ%n",date);}</span>
      運行結果:

<span style="font-family:Microsoft YaHei;font-size:14px;">2位元字24時制的小時(不足2位前面補0):152位元字12時制的小時(不足2位前面補0):032位元字24時制的小時(前面不補0):152位元字12時制的小時(前面不補0):32位元字的分鐘(不足2位前面補0):242位元字的秒(不足2位前面補0):563位元字的毫秒(不足3位前面補0):8289位元字的毫秒數(不足9位前面補0):828000000小寫字母的上午或下午標記(英):pm小寫字母的上午或下午標記(中):下午相對於GMT的RFC822時區的位移量:+0800時區縮寫字串:CST1970-1-1 00:00:00到現在所經過的秒數:11935562961970-1-1 00:00:00到現在所經過的毫秒數:1193556296828</span>


Java String字串的格式化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.