Java String Format
(You can suggest changes to this post.)
在Android开发中,经常会用到和后端Api进行交互,而目前基本上都是REST风格的Api,会经常遇到拼接Url的情况,例如下面一个api:
GET /api/v1/posts/:id.json?page=2&token=asdfghjkl
这里url里的id以及参数page和token都是动态的,这时候最好的做法就是用String.format()方法.
final String POST = "/api/v1/posts/%1$d.json?page=%2$d&token=%3$s"
System.out.println(String.format(POST, 12, 1, "asdfghjkl"));
#=> /api/v1/posts/12.json?page=1&token=asdfghjkl
很方便吧,String.format是在JDK1.5中新增的静态方法,功能强。它主要功能是格式化数据,大致分为这些类(常规类型、字符类型、数值类型、日期类型)。它的语法如下: 常规类型、字符类型和数值类型的格式说明符的语法:%[参数索引位置$][转换标识符][最小官渡][.保留精度位数]转换方式
如上述1$, 2$代表参数索引位置,而d, s则是转换标示符,关于更多的转换标示符见下面:
-
%s 字符串类型 如”mingrisoft”
-
%c 字符类型 ‘m’
-
%b 布尔类型 true
-
%d 整数类型(十进制) 99
-
%x 整数类型(十六进制) FF
-
%o 整数类型(八进制) 77
-
%f 浮点类型 99.99
-
%a 十六进制浮点类型 FF.35AE
-
%e 指数类型 9.38e+5
-
%g 通用浮点类型(f和e类型中较短的)
-
%% 百分比类型 %
-
%n 换行符
-
%tx 日期与时间类型(x代表不同的日期与时间转换符)
这里只介绍一些简单的用法,String.format尤其对日期类型格式化的时候更加强大,更多用法详见JDK api.