Java的格式化輸出
一個方法要進行格式化輸出時,需要一個格式字符串(format string)和一個參數列表(arguments)。格式字符串可能包括確定的文本(fixed text)和一個或多個格式說明符(format specifier)。看下面例子:
String s=String.format("Duke's Name: %s", name);//format(String format,object arguments)
這是Java的String類的格式化方法,在這個方法中,"Duke's Name: %s"是這個方法的第一個參數,也就是格式字符串(format string),其中(%s)是格式說明符,除了這個以外剩下的部分就是確定的文本。name就是參數列表(arguments)。
•對於一般情況下來說,格式說明符的語法如下:
%[argument_index$][flags][width][.precision]conversion
•格式說明符以%符號開頭,用相應的參數替換。(%符號可根據\理解,要想輸出%符號,格式需要寫成這樣%%)
•argument_index是一個十進制整數,顧名思義,表示后面參數的位置,例如上面的1$表示name。
•flags是用於控制輸出格式,但具體怎么控制還要看末尾的轉換符(conversion)。
•width是一個正整數,表明要輸出字符的長度。
轉換符
標志
•代碼:
public class formatDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello World"); double x=-10000.0/3.0; double y=5000.0/3.0; System.out.println(x); System.out.printf("%,10.2f\r\n",x); System.out.printf("%-,10.2f\r\n",x); System.out.printf("%+(,10.2f %2$.3f\r\n",x,y); System.out.printf("%+(,10.2f %1$.3f %2$.3f %<f %<.3f\r\n",x,y); } } |
•結果:
•日期格式轉換:
日期的格式說明符特點是說明符中的conversion是由t開始,加上下表任意字符結束。
|
|
時間是用距離一個固定的時間點的毫秒數(可正可負)表示的,這個點就是所謂的紀元(epoch),它是UTC時間1970年1月1日00:00:00.UTC是 Coordinated Universal Time的縮寫,與GMT(Greenwich Mean Time/格林威治時間)一樣。Java將保存時間和給時間點命名分開。Date類是用來表示時間點;另一個是日立表示法Calendar類。
摘自《Java核心技術卷I》