普通转换符
转换符 | 详细说明 |
---|
%s | 返回字符串类型 |
%c | 返回字符类型 |
%b | 返回布尔类型 |
%d | 返回整数类型(十进制) |
%x | 返回整数类型(十六进制) |
%o | 返回整数类型(八进制) |
%f | 返回浮点类型 |
%a | 返回十六进制浮点类型 |
%e | 返回指数类型 |
%g | 返回通用浮点类型(f和e类型中较短的) |
%h | 返回散列码 |
%% | 返回百分比类型 %(%特殊字符%%才能显示%) |
%n | 返回换行符 |
%tx | 返回指定日期格式字符串 |
例:
String str;
str = String.format("Hello,%s", "world");
System.out.println(str);
str = String.format("Hello,%c%c%c%c%c", 'w', 'o', 'r', 'l', 'd');
System.out.println(str);
str = String.format("1<2:%b %n", 1 < 2);
System.out.print(str);
str = String.format("100的一半是:%d %n", 100 / 2);
System.out.print(str);
str = String.format("100的16进制数是:%x %n", 100);
System.out.print(str);
str = String.format("100的8进制数是:%o %n", 100);
System.out.print(str);
str = String.format("100元的耳机打2.5折扣的浮点数是:%f 元%n", 100 * 0.25);
System.out.print(str);
str = String.format("100元的耳机打2.5折扣的16进制数是:%a %n", 100 * 0.25);
System.out.print(str);
str = String.format("100 * 0.25的指数表示:%e %n", 100 * 0.25);
System.out.print(str);
str = String.format("100 * 0.25的指数和浮点数结果的长度较短的是:%g %n", 100 * 0.25);
System.out.print(str);
str = String.format("字母A的散列码是:%h %n", 'A');
System.out.print(str);
str = String.format("25添加一个百分号%d%% %n", 25);
System.out.print(str);
日期转换符(和%t配合使用)
转换符 | 详细说明 |
---|
c | 包括全部日期和时间信息 |
F | “年-月-日”格式 |
D | “月/日/年”格式 |
r | “HH:MM:SS PM”格式(12时制) |
T | “HH:MM:SS”格式(24时制) |
R | “HH:MM”格式(24时制) |
String str;
Date date = new Date();
str = String.format("全部日期和时间信息:%tc%n", date);
System.out.println(str);
str = String.format("年-月-日格式:%tF%n", date);
System.out.println(str);
str = String.format("月/日/年格式:%tD%n", date);
System.out.println(str);
str = String.format("HH:MM:SS PM格式(12时制):%tr%n", date);
System.out.println(str);
str = String.format("HH:MM:SS格式(24时制):%tT%n", date);
System.out.println(str);
str = String.format("HH:MM格式(24时制):%tR", date);
System.out.println(str);
标志(和搭配转换符配合使用)
转换符 | 详细说明 |
---|
+ | 为正数或者负数添加符号 |
0 | 数字前面补0 |
空格 | 在整数之前添加指定数量的空格 |
, | 以“,”对数字分组 |
( | 对负数使用括号 |
# | 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0 |
< | 格式化前一个转换符所描述的参数 |
$ | 被格式化的参数索引 |
String str;
str = String.format("显示正负数的符号:%+d与%d%n", 100, -100);
System.out.print(str);
str = String.format("1前面加0变成4位:%04d%n", 1);
System.out.print(str);
str = String.format("1前面加空格变成3位:% 3d%n", 1);
System.out.print(str);
str = String.format("9989997加,:%,d %n", 9989997);
System.out.print(str);
str = String.format("给-100加括号:%(d %n", -100);
System.out.print(str);
str = String.format("浮点数则包含小数点:%#2.2f %n", 99.9);
System.out.print(str);
str = String.format("8进制则添加0:%#o %n", 100);
System.out.print(str);
str = String.format("16进制则添加0x:%#x %n", 100);
System.out.print(str);
str = String.format("<的效果是:%2.1f和%<2.3f %n", 99.9);
System.out.print(str);
str = String.format("格式参数$的使用:%d,%2$s", 99, "abc");
System.out.print(str);