Java格式化输出之printf

0.
Java中用printf可以实现格式化输出,printf的函数声明如下:
PrintStream printf(String format,Object …args)
其中第一个参数是参数输出格式,后面的参数是需要格式化输出的对象。
format 参数输出的格式,定义格式为:%[flags][width][.perc][h|l]type
Java格式化输出之printf_第1张图片

Java格式化输出之printf_第2张图片

width: 输出数值(或字符串)的整个宽度,可以超过这个宽度,宽度不够补空格
.prec: 输出数值的小数部分的精度,带四舍五入
l|h: l对整型指long型,h用于将整型的格式字符修正为short型 eg:%ld,输出长整型数值

1.注意点
①输出百分号:在格式化参数中用两个%,如:”%%”
②%m.ns :输出字符串宽度为m(不够补空格,够了可以超过m),只取字符串的前n个字符
③%m$ :参数中的第m个变量
④格式化日期时间: %ty年(两位数)、%tm月、%td日、%tY年(四位数)、%tH时(24进制)、%tI时(12进制)、%tM分、%tS秒、%tA星期几,参数只要一个Date类型的就可以了

2.代码示例

 package ex;    
 import java.util.Date;
 public class Test {  
     public static void main(String[] args){
          int a = 99;
          double b = 99.999;
          Date now = new Date();
          now.getDate();
          String str = "Hello,world!";
          System.out.printf("%s\n",str ); //输出字符串
          System.out.printf("%d\n", a);  //输出十进制数字
          System.out.printf("%+5d\n", a);  //带符号
          System.out.printf("%-5d\n", a);  //左对齐
          System.out.printf("%d%%\n",a); //输出百分号
          System.out.printf("%5d\n", a);   //设置字段长未5,不足用空格填补
          System.out.printf("%f\n", b); //输出浮点数
          System.out.printf("%.1f\n", b); //保留小数后一位,带四舍五入
          System.out.printf("%o\n",a);       //八进制
          System.out.printf("%x\n", a);        //十六进制
          System.out.printf("%.5s\n", "Hello,world");  //取字符串的前五位
          System.out.printf("小数:%2$f,整数:%1$d\n", a, b);  //位置
System.out.printf("现在是:%1$tY-%1$tm-%1$td %1$tH:%1$tM %tA", now); //输出时间

     }

 }
/*结果: 
Hello,world!
99
  +99
99   
99%
   99
99.999000
100.0
143
63
Hello
小数:99.999000,整数:99
现在是:2017-11-16 21:54 星期四
*/

你可能感兴趣的:(Java)