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开发感兴趣的老哥一起讨论。