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