String.format()

  • Post author:
  • Post category:其他



场景

在开发的时候一段字符串的中间某一部分是需要可变的,一长串拼接起来比较繁琐
例如: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
10016进制数是:64
1008进制数是: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  



版权声明:本文为yang2717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。