您的位置:首页 > 编程语言 > Java开发

Java格式化输出之printf

2017-11-16 21:37 459 查看
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 星期四
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java printf