1.先来看看一些基本知识
| %s | 字符串类型 | %c | 字符类型 |
| %d | 十进制整数 | %x | 十六进制整数 |
| %o | 八进制整数 | %b | Boolean类型 |
| %f | 浮点数 | %a | 十六进制浮点数 |
| %g | 通用浮点数 | %e | 指数形式 |
| %h | 散列码 | %% | 百分号 |
| %n | 换行 | | |
2.接下来看一点例子
public static void main(String[] args) {
//TODO 输出字符串
String out1 = String.format("format结果: %s%s%s", "厦门", "福州", "泉州");
System.out.println("out1 = " + out1);
//TODO 输出字符
String out2 = String.format("format结果: %c%c%c", '中', '国', '人');
System.out.println("out2 = " + out2);
//TODO 输出bool类型
String out3 = String.format("format结果: %b;%b;%b", true, false, true);
System.out.println("out3 = " + out3);
//TODO 整数类型(十进制)
String out4 = String.format("format结果: %d", 96, 96);
System.out.println("out4 = " + out4);
//TODO 整数类型(十六进制)
String out5 = String.format("format结果: %x;%X;%#x;", 30, 30, 30);
System.out.println("out5 = " + out5);
//TODO 整数类型(八进制)
String out6 = String.format("format结果: %o;%#o", 30, 30);
System.out.println("out6 = " + out6);
//TODO 浮点类型
String out8 = String.format("format结果: %f", 30.31);
System.out.println("out8 = " + out8);
//TODO 十六进制浮点类型
String out9 = String.format("format结果: %a", 30.31);
System.out.println("out9 = " + out9);
//TODO 指数类型
String out10 = String.format("format结果: %e", 30.31);
System.out.println("out10 = " + out10);
//TODO 通用浮点类型
String out11 = String.format("format结果: %g", 30.31);
System.out.println("out11 = " + out11);
//TODO 散列码
String out12 = String.format("format结果: %h", 30.31);
System.out.println("out12 = " + out12);
//TODO 换行符
String out13 = String.format("format结果: 福建人;%n中国人.");
System.out.println("out13 = " + out13);
//TODO 输出百分比类型
String out14 = String.format("format结果: %d%%", 20);
System.out.println("out14 = " + out14);
//TODO 输出日期和时间信息
Date today = new Date();
String out15 = String.format("format结果: %tc", today);
System.out.println("out15 = " + out15);
//TODO 输出年-月-日格式
Date today1 = new Date();
String out16 = String.format("format结果: %tF", today1);
System.out.println("out16 = " + out16);
//TODO 输出年/月/日格式
Date today2 = new Date();
String out17 = String.format("format结果: %tD", today2);
System.out.println("out17 = " + out17);
//TODO 输出HH:MM:SS PM 格式
Date today3 = new Date();
String out18 = String.format("format结果: %tr", today3);
System.out.println("out18 = " + out18);
//TODO 输出HH:MM:SS格式
Date today4 = new Date();
String out19 = String.format("format结果: %tT", today4);
System.out.println("out19 = " + out19);
//TODO 输出HH:MM格式
Date today5 = new Date();
String out20 = String.format("format结果: %tR", today5);
System.out.println("out20 = " + out20);
//TODO 为数字添加符号
String out21 = String.format("format结果: %+d;%d", 9696, -8686);
System.out.println("out21 = " + out21);
//TODO 用 0 补全 06就是不到6位数的用 0 补全
String out22 = String.format("format结果: %06d", 9696);
System.out.println("out22 = " + out22);
//TODO 在数字前使用空格填充
String out23 = String.format("format结果: % 6d", 9696);
System.out.println("out23 = " + out23);
//TODO 使用','对数字分组
String out24= String.format("format结果: %,f", 56329696.7894);
System.out.println("out24 = " + out24);
//TODO 使用括号包含负数
String out25= String.format("format结果: %(f", -9696.96);
System.out.println("out25 = " + out25);
//TODO 给16进制加上0x,给8进制加上0
String out26= String.format("format结果: %#x;%#o", 18, 18);
System.out.println("out26 = " + out26);
//TODO 格式化'<'前一个转换符所描述的参数
String out27= String.format("format结果: %d;%<d", 18);
System.out.println("out27 = " + out27);
String out28= String.format("format结果: %tF %<tT", new Date());
System.out.println("out28 = " + out28);
//TODO 被格式化的参数索引,即取哪个参数格式
String out29= String.format("format结果: %2$04d;%1$s","福建在中国", 591);
System.out.println("out29 = " + out29);
}