场景
在开发的时候一段字符串的中间某一部分是需要可变的,一长串拼接起来比较繁琐
例如:http://www.test.com?userName=张三&age=25&address=北京市&sex=男&id=666
用户名 userName 为可变的string数据
年龄 age 为可变的int数据
地址 address 为可变的string数据
性别 sex 为可变的string数据
id 为可变的int数据
解决方法
String.format()
format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
format(Locale locale, String format, Object… args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串
String userName = "张三";
String age = "25";
String address = "北京市";
String sex = "男";
String id= "666";
String requestUrl = "http://www.test.com?userName=%s&age=%s&address=%s&sex=%s&id=%s";
String url = String.format(requestUrl,userName,age,address,sex,id);
System.out.println(url);
System.out.println(String.format("Hi,%s", "张三"));
System.out.println(String.format("Hi,%s %s %s", "张三","是个","人才"));
System.out.println(String.format("字母m的大写是:%c", 'm'));
System.out.println(String.format("布尔结果是:%b", "张三".equals("帅哥")));
System.out.println(String.format("100的一半是:%d", 100/2));
System.out.println(String.format("100的16进制数是:%x", 100));
System.out.println(String.format("100的8进制数是:%o", 100));
System.out.println(String.format("50元的书打8.5折扣是:%f 元", 50*0.85));
System.out.println(String.format("上面价格的16进制数是:%a", 50*0.85));
System.out.println(String.format("上面价格的指数表示:%e", 50*0.85));
System.out.println(String.format("上面价格的指数和浮点数结果的长度较短的是:%g", 50*0.85));
System.out.println(String.format("上面的折扣是%d%%", 85));
System.out.println(String.format("字母A的散列码是:%h", 'A'));
结果
http://www.test.com?userName=张三&age=25&address=北京市&sex=男&id=666
Hi,张三
Hi,张三 是个 人才
字母m的大写是:m
布尔结果是:false
100的一半是:50
100的16进制数是:64
100的8进制数是:144
50元的书打8.5折扣是:42.500000 元
上面价格的16进制数是:0x1.54p5
上面价格的指数表示:4.250000e+01
上面价格的指数和浮点数结果的长度较短的是:42.5000
上面的折扣是85%
字母A的散列码是:41
Date date=new Date();
//c的使用
System.out.printf("全部日期和时间信息:%tc%n",date);
//f的使用
System.out.printf("年-月-日格式:%tF%n",date);
//d的使用
System.out.printf("月/日/年格式:%tD%n",date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR",date);
结果
全部日期和时间信息:星期三 九月 21 22:43:36 CST 2016
年-月-日格式:2016-09-21
月/日/年格式:16/10/21
HH:MM:SS PM格式(12时制):10:43:36 下午
HH:MM:SS格式(24时制):22:43:36
HH:MM格式(24时制):22:43