欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java格式化输出之printf

程序员文章站 2022-06-03 13:14:33
...

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

Java格式化输出之printf

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 printf