java中的Printf浅析

System.out.printf(String format, Object ... args);
其中format标准的格式写法:
%[argument_index$][flags][width][.precision]conversion
argument_index是一个十进制整数,表示参数在参数列表中的位置。 第一个参数为“1”,第二个为“2”,第二    个    为“2”等。
flags是修改输出格式的一组字符。
width是一个正十进制整数,表示要写入输出的最小字符数。
precision通常用于限制字符数的非负十进制整数。
conversion  

输出数字与字符:
例子:
double d = 345.678;          
String s = "你好!";          
int i = 1234;           //"%"表示进行格式化输出,"%"之后的内容为格式的定义。         
System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s); //可以输出多个变量,注意顺序。         
System.out.println();           
System.out.printf("字符串:%2$10s,%1$+-20.4f",d,s);          //"X$"表示第几个变量。     
输出:
输出一个浮点数:345.678000,一个整数:1234,一个字符串:你好!
字符串:       你好!,+345.6780  

以%1$+-20.4d输出为例:
argument_index$:1$
flags:   +-
width:   20
.precision:  .4
conversion   f

格式字符 conversion


%s表示输出字符串,也就是将后面的字符串替换模式中的%s
%n表示换行
%S将字符串以大写形式输出
%d表示将整数格式化为10进制整数
%o表示将整数格式化为8进制整数
%x表示将整数格式化为16进制整数
%X表示将整数格式化为16进制整数,并且字母变成大写形式
%#x表示输出带有十六进制标志的整数
%e表示以科学技术法输出浮点数
%E表示以科学技术法输出浮点数,并且为大写形式       
%f表示以十进制格式化输出浮点数
......
还有很多。。。。
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如: 
printf("%f%%", 1.0/3); 
输出0.333333%。


输出日期与时间
              /*** 输出日期类型***/
              // %t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同的输出格式
              Date date = new Date();
              long dataL = date.getTime();

              

                // 格式化年月日

              // %t之后用y表示输出日期的年份(2位数的年,如99)
              // %t之后用m表示输出日期的月份,%t之后用d表示输出日期的日号
              System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL)

             

                 // %t之后用Y表示输出日期的年份(4位数的年),

              // %t之后用B表示输出日期的月份的完整名, %t之后用b表示输出日期的月份的简称
              System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);
              // 以下是常见的日期组合
              // %t之后用D表示以 "%tm/%td/%ty"格式化日期
              System.out.printf("%1$tD%n", date);


              //%t之后用F表示以"%tY-%tm-%td"格式化日期


              System.out.printf("%1$tF%n", date);

              /*** 输出时间类型***/

              // 输出时分秒

              // %t之后用H表示输出时间的时(24进制),%t之后用I表示输出时间的时(12进制),

              // %t之后用M表示输出时间的分,%t之后用S表示输出时间的秒

              System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL);

              // %t之后用L表示输出时间的秒中的毫秒

              System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date);

              // %t之后p表示输出时间的上午或下午信息

              System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date);
              // 以下是常见的时间组合

              // %t之后用R表示以"%tH:%tM"格式化时间

              System.out.printf("%1$tR%n", date);

              // %t之后用T表示以"%tH:%tM:%tS"格式化时间

              System.out.printf("%1$tT%n", date);

              // %t之后用r表示以"%tI:%tM:%tS %Tp"格式化时间

              System.out.printf("%1$tr%n", date);

              /*** 输出星期***/

              // %t之后用A表示得到星期几的全称

              System.out.printf("%1$tF %1$tA%n", date);

              // %t之后用a表示得到星期几的简称

              System.out.printf("%1$tF %1$ta%n", date);

              // 输出时间日期的完整信息

              System.out.printf("%1$tc%n", date);

你可能感兴趣的:(java)