華文網

30+的人學程式設計,格式化輸出

在Java中,我們可以使用System.out.print( x )這串代碼將數值 x 輸出到控制台上,這是一個簡單的輸出語句。

看一下下面這個語句:

double x = 10000.0/3.0;

System.out.print(x);

這串代碼運行後,將會列印出double類型所允許的最大值:3333.33333333333335。

但是如果我們希望顯示美元、美分等符號,

則有可能出現問題了,這個時候我們就要使用到printf了,注意在print後面有個“f”;在printf中,可以使用多個參數,例如:

System.out.printf("Hello, %s.Next year, you will be %d",name,age);

每一個以“%”字元開始的格式說明符都用於相應的參數轉換,格式說明符尾部的轉換符將指示被格式化的數數值型別:f表示浮點數,s表示字串,d表示十進位整數。下表是所有的轉換符:

用於printf的轉換符

另外,我們還可以給出控制格式化輸出的標誌,例如:逗號標誌增加了分組的分隔符號,看下面的例子:

System.out.printf("%,.2f",10000.0/3.0);

它的輸出結果是:3,333.33。當然也可以使用多個標誌,那麼下表就列明瞭用於printf的標誌:

用於printf的標誌

上面的介紹中沒有對printf方法的日期與時間詳細說明,那麼現在我們再來看一下。

在新代碼中,應當使用java.time包的方法,不過你可能會在遺留代碼中看到Date類和相關的格式化選項。格式包括兩個字母,以t開始,以下表中轉換符的任意字母結束。例如:

System.out.printf("%tc", new Date());

輸出值:Mon Feb 09 18:05:19 PST 2015

日期和時間的轉換符

現在,已經瞭解了printf方法的所有特性,我們再畫一個格式說明符的語法圖,詳見下圖:

格式說明符語法