Java printf格式化输出整理

Java SE 5.0 沿用了 C 语言库函数中的 printf 方法

方法定义于 java.io.PrintStream中

在这里插入图片描述
在这里插入图片描述


用法

/*
*一般使用第二个方法
*方法参数:第一个为参数为输出格式,第二是输出的数据,为可变长参数
*转换符的使用:每一个以 % 字符开始的格式说明符都用相应的参数替换。f 表示浮点数,s 表示字符串,d 表示十进制整数。
*/

//字符串(%s)
System.out.printf("大家好,我是%s","涕笑三声");	//大家好,我是涕笑三声 

//使用索引,指出要被格式化的参数索引。
//索引必须紧跟在 % 后面, 并以 $ 终止。
System.out.printf("%2$s %1$s","三声","涕笑");	//涕笑 三声 
//%n实现换行(\n,\t等也可以使用)
System.out.printf("%1$s %n %2$s","涕笑","三声");
													
//十进制整数(%d)
//使用 , 实现整数分组
System.out.printf("%,d",1000000000);	//1,000,000,000

//浮点数(%f)
System.out.printf("%f",1.1);	//1.100000
//限制小数点后的位数
System.out.printf("%.2f",1.1);	//1.10
//宽度的使用,5表示字符宽度
System.out.printf("%5.2f",1.1);	//输出一个空格和1.10

//时间和日期
//%t表示格式化日期时间类型
//%T是时间日期的大写形式
//在%t之后用特定的字母表示不同的输出格式
System.out.printf("%tc %n",new Date());	 //星期六 十二月 26 14:05:33 CST 2020 
//年月日组合
System.out.printf("%1$tY/%1$tm/%1$td %n",new Date());	//2020/12/26 

格式语法
在这里插入图片描述
转换符
在这里插入图片描述
标志
在这里插入图片描述
时间与日期转换符
在这里插入图片描述
在这里插入图片描述
图片截自《Java核心技术卷 I》


代码示例


/*输出字符串*/
// %s表示输出字符串 %S表示大写形式,%n换行
System.out.printf("%s %S","hello","world");	//hello WORLD
//使用参数索引,索引必须紧跟在 % 后面, 并以 $ 终止
System.out.printf("%2$s%1s","三声","涕笑");	//涕笑三声

/*boolean类型输出*/
System.out.printf("boolean %1$b %2$b",true,false);	//boolean true false

/*输出整数*/
// %d表示十进制输出
System.out.printf("%d %d",-10,10);	//-10 10
// %o表示将整数格式化为8进制整数
System.out.printf("%o %o",-10,10);	//37777777766 12
// %x表示将整数格式化为16进制整数
System.out.printf("%x %x",-10,10);	//fffffff6 a
// %X表示将整数格式化为16进制整数,并且字母编程大写形式
System.out.printf("%X %X",-10,10);	//FFFFFFF6 A


/*浮点数输出*/
//%f表示格式化为浮点数
System.out.printf("%f %f",-10.132f,10.132d);		//-10.132000 10.132000
//限制小数点后面的位数
System.out.printf("%.1f %.2f",-10.132f,10.132d);	//-10.1 10.13
//%e表示以科学技术法输出浮点数
System.out.printf("%e %e",-10.132f,-10.132d);		//-1.013200e+01 -1.013200e+01
//%E表示以科学技术法输出浮点数,并且为大写形式
System.out.printf("%E %E",-10.132f,-10.132d);		//-1.013200E+01 -1.013200E+01
//%g表示通用浮点数
System.out.printf("%g %g",-10.13f,-10.132d);		//-10.1300 -10.1320
//%a表示16进制浮点数
System.out.printf("%a %a",-10.132f,10.132d);		//-0x1.443958p3 0x1.44395810624ddp3
//%a表示16进制浮点数,并且以大写形式
System.out.printf("%A %A",-10.132f,10.132d);		//-0X1.443958P3 0X1.44395810624DDP3

/*标志的使用*/
System.out.printf("%1$+d,10);		//+10
System.out.printf("%(.2f",-10.0);	//(10.00)
/*宽度*/
System.out.printf("%6s","涕笑三声");	//  涕笑三声
System.out.printf("%8.2f",10.1);	  //   10.10

/*
*输出日期  %t表示格式化日期
*			%T是时间日期的大写形式
*			在%t之后用转换符表示不同的输出格式
*%t之后用 c输出完整的日期和时间
*         F输入ISO 8601日期
*         D输出美国格式日期(月/日/年)
*         T输出24小时时间
*         r输出12小时时间
*         R输出24小时时间没有秒
*/
Date date = new Date();				
System.out.printf("%tc",date);		//星期六 十二月 26 14:26:36 CST 2020
System.out.printf("%tF",date);		//2020-12-26
System.out.printf("%tD",date);		//12/26/20
System.out.printf("%TT",date);		//14:28:12
System.out.printf("%tr",date);		//02:29:08 下午
System.out.printf("%tR",date);		//14:30 
//年月日组合
System.out.printf("%1$tY/%1$tm/%1$td",date);	//2020/12/26
System.out.printf("%1$tY/%1$tm/%1$td",date.getTime());	//2020/12/26
//时分秒组合
System.out.printf("%1$tH:%1$tM:%1$tS \t %2$tH:%2$tM:%2$tS",date,date.getTime());	//14:31:50 	 14:31:50
//输出星期
System.out.printf("%1$tA",date);	//星期六

猜你喜欢

转载自blog.csdn.net/weixin_46022868/article/details/111742864