问题在开发中一段字符串的中间某一部分需要可变的。如:文本要展示 “张三用户来自深圳,年龄 18,性别 男…” 解决方式使用 public static void main(String[] args) {
String name = "张三";
String city = "深圳";
int age = 18;
String sex = "男";
String format = String.format("%s用户来自%s,年龄 %d,性别 %s.....", name, city, age, sex);
System.out.println(format);
}String.format()说明1. String.format()字符串两个重载方法
2. 占位符类型
示例说明public static void main(String[] args) {
String str;
// %s
str = String.format("Hi,%s", "布鲁斯");
System.out.println(str);
// %c %n
str = String.format("字母c的大写是:%c %n", 'C');
System.out.println(str);
// %b
str = String.format("布尔结果是:%b", 3>2);
System.out.println(str);
// %d
str = String.format("100的一半是:%d", 100/2);
System.out.println(str);
// %x
str = String.format("100的16进制数是:%x", 100);
System.out.println(str);
// %o
str = String.format("100的8进制数是:%o", 100);
System.out.println(str);
// %f
str = String.format("50元的书打8.5折扣是:%f 元", 50 * 0.85);
System.out.println(str);
// %a
str = String.format("上面价格的16进制数是:%a", 50 * 0.85);
System.out.println(str);
// %e
str = String.format("上面价格的指数表示:%e", 50 * 0.85);
System.out.println(str);
// %g
str = String.format("上面价格的指数和浮点数结果的长度较短的是:%g", 50 * 0.85);
System.out.println(str);
// %d%
str = String.format("上面的折扣是:%d%%", 85);
System.out.println(str);
// %h
str = String.format("字母A的散列码是:%h",'A');
System.out.println(str);
}输出结果
3. 常用标识
示例说明public static void main(String[] args) {
// +
String str;
str = String.format("数字的正负表示:%+d %d %+d %d",8,8,-8,-8);
System.out.println(str);
// -
str = String.format("左对齐:%-6d",8);
System.out.println(str);
// 0
str = String.format("缺位补零:%06d",8);
System.out.println(str);
// 空格
str = String.format("缺位补空格:% 6d",8);
System.out.println(str);
str = String.format("缺位补空格:% 6d",-8);
System.out.println(str);
// ,
str = String.format("数字分组:%,d",123456789);
System.out.println(str);
// (
str = String.format("括号用法:%(d",-8888);
System.out.println(str);
str = String.format("括号用法:%(d",8888);
System.out.println(str);
// #
str = String.format("#括号用法(十六进制):%#x",12);
System.out.println(str);
str = String.format("#括号用法(八进制):%#o",12);
System.out.println(str);
// <
str = String.format("<括号用法:%f %<3.1f",3.14,3.2);
// "%<3.1f"作用的对象是前一个"%f"所作用的对象
System.out.println(str);
}输出结果
4. 日期转换符
示例说明public static void main(String[] args) {
String str;
// c
str = String.format("全部日期和时间信息:%tc",new Date());
System.out.println(str);
// F
str = String.format("年-月-日格式:%tF",new Date());
System.out.println(str);
//D
str = String.format("月/日/年格式:%tD",new Date());
System.out.println(str);
//r
str = String.format("HH:MM:SS PM格式(12时制):%tr",new Date());
System.out.println(str);
//T
str = String.format("HH:MM:SS格式(24时制):%tT",new Date());
System.out.println(str);
//R
str = String.format("HH:MM格式(24时制):%tR",new Date());
System.out.println(str);
// %.2f保留两位小数
str = String.format("3.14保留两位小数:%.2f",3.141);
System.out.println(str);
}输出结果
|
|
|
来自: jackeyqing > 《学习整理360doc》