String str="Hello {0},我是 {1},今年{2}岁";
str = str.replace("{0}", "CSDN");
str = str.replace("{1}", "小猪");
str = str.replace("{2}", "12");
System.out.println(str);
作用:使用指定的格式字符串和参数返回一个格式化字符串。
String str=String.format("Hello %s,我是 %s,今年 %s 岁", "CSDN","小猪","12");
System.out.println(str);
String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", "CSDN");
占位符格式:
%[index$][标识]*[最小宽度][.精度]转换符
针对不同数据类型的格式化,占位符的格式将有所裁剪。
占位符格式:
%[index$][标识][最小宽度]转换符
示例1
String str = "CSDN";
String result = String.format("%1$7s", str);
System.out.println("Hello" + result);
// 简化
result = String.format("%7s", str);
System.out.println("Hello" + result);
// 结果:
Hello CSDN
Hello CSDN
示例2
String str = "CSDN";
String result = String.format("%1$-7s", str);
System.out.println("Hello" + result + ",");
// 简化
result = String.format("%-7s", str);
System.out.println("Hello" + result + ",");
// 结果:
HelloCSDN ,
HelloCSDN ,
可用标识
可用转换符
占位符格式
%[index$][标识]*[最小宽度]转换符
示例1
将1显示为0001
int num = 1;
String str = String.format("%04d", num);
System.out.println(str);
// 结果:
0001
示例2
将-1000显示为(1,000)
int num = -1000;
String str = String.format("%(,d", num);
System.out.println(str);
// 结果:
(1,000)
可用标识:
可用转换符:
占位符格式:
%[index$][标识]*[最小宽度][.精度]转换符
示例:
double num = 123.4567899;
System.out.print(String.format("%f %n", num));
System.out.print(String.format("%a %n", num));
System.out.print(String.format("%g %n", num));
// 结果
123.456790
0x1.edd3c0bb46929p6
123.457
可用标识:
可用转换符:
占位符格式:
%[index$]t转换符
示例1
String str = String.format("%tF", new Date());
System.out.println(str);
// 结果
2020-12-15
可用转换符
1)日期的转换符
2)时间的转换符
常用的类型关系:
转换符 | 详细说明 | 示例 |
---|---|---|
%s | 字符串类型 | “喜欢请收藏” |
%c | 字符类型 | ‘m’ |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 88 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 8.888 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | 不举例(基本用不到) |
%h | 散列码 | 不举例(基本用不到) |
%% | 百分比类型 | %(%特殊字符%%才能显示%) |
%n | 换行符 | 不举例(基本用不到) |
%tx | 日期与时间类型(x代表不同的日期与时间转换符) | 不举例(基本用不到) |
———————————
如有不足请留言指正
相互学习,共同进步