java中String类中有两个常用的格式化字符串方法:
static String |
format(Locale l,String format,Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。 |
static String |
format(String format,Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。 |
注:建议使用第二个方法进行根式化字符串,因为在Android做多语言国际化适配的时候,如果不指定语言环境进行格式化字符串时,在俄语、土耳其语等语言环境下String.format字符串时会出现int 1.88格式化后的结果为1,88。很显然在一些语言环境下“.”会根式化成“,”,如果你需要解析或者显示这些字符串会出现这样的结果。所有建议指定语言环境进行格式化代码。
转 换 符
|
---|
System.out.println(String.format(Locale.ENGLISH, "%s-%s", "hello", "world")); System.out.println(String.format(Locale.ENGLISH, "%c", 'a')); System.out.println(String.format(Locale.ENGLISH, "%b", (1 + 1 == 2))); System.out.println(String.format(Locale.ENGLISH, "%d", 100)); System.out.println(String.format(Locale.ENGLISH, "%x", 16)); System.out.println(String.format(Locale.ENGLISH, "%o", 24)); System.out.println(String.format(Locale.ENGLISH, "%f", 1.22)); System.out.println(String.format(Locale.ENGLISH, "%a", 16.0)); System.out.println(String.format(Locale.ENGLISH, "%g", 16.0)); System.out.println(String.format(Locale.ENGLISH, "%h", "hello")); System.out.println(String.format(Locale.ENGLISH, "%d%%", 90));
示例结果:
hello-world
a
true
100
10
30
1.220000
0x1.0p4
16.0000
5e918d2
90%
标 志
说 明 |
示 例 |
结 果 |
|
+ |
带符号数 |
("%+d",100) |
+100 |
− |
左对齐 |
("%-2d",100) |
|100 | |
0 |
数字前面补指定个数的0 |
("%02d", 8) |
08 |
空格 |
在整数之前添加指定个数的空格 |
("% 4d", 10) |
| 10| |
, |
以“,”对数字分组 |
("%,d", 10000) |
10,000 |
# |
如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0 |
("%#x", 100) ("%#o", 100) |
0x64 0144 |
$ |
被格式化的参数索引 |
("%1$d,%2$s", 100,"hello") |
100,hello |
示例:
System.out.println(String.format(Locale.ENGLISH, "%+d", 100)); System.out.println(String.format(Locale.ENGLISH, "%-2d", 100)); System.out.println(String.format(Locale.ENGLISH, "%02d", 8)); System.out.println(String.format(Locale.ENGLISH, "% 4d", 10)); System.out.println(String.format(Locale.ENGLISH, "%,d", 10000)); System.out.println(String.format(Locale.ENGLISH, "%#x", 100)); System.out.println(String.format(Locale.ENGLISH, "%#o", 100)); System.out.println(String.format(Locale.ENGLISH, "%1$d,%2$s", 100, "hello"));
示例结果:
+100
100
08
10
10,000
0x64
0144
100,hello
以上是比较常用的格式化字符串转换和标志,如有问题请留言,欢迎大家补充指出不足。<( ̄︶ ̄)↗[GO!]。
最后欢迎对Android开发感兴趣的老哥一起讨论。