对java中String类format()方法的学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java中String类中format()的运用
1.运用在整数身上:
函数为:public static String format(String format,Object... args)。
其中参数format的格式为:%[index$][标识][最小宽度]转换方式。
1.1.index的解释:
index表示从1(0和1都代表args是第一个的参数)开始取值,将第index 个参数转化为指定的format格式。
例如:
System.out.println(String.format("%2$05d", -323,23));
输出结果:
解释:"%2$05d"的2代表要转化的参数是23。
1.2.标识的解释:
'-'向左对齐(用0填充时不可用,会报错)。
'#'主要用于8进制和16进制,将参数转化为8进制和16进制分别在输出结果前加0、0x。
例子:
System.out.println(String.format("%1$#o", 323));
System.out.println(String.format("%1$#x", 6536));
输出结果
'+'结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger 才可以用于8进制和16进制)。
例子:
System.out.println(String.format("%1$+d", 323));
System.out.println(String.format("%1$+d", -6536));
输出结果:
' '正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)。
例子:
System.out.println(String.format("%1$ d", 323));
System.out.println(String.format("%1$ d", -6536));
输出结果:
'0'结果将用零来填充。
例子:
System.out.println(String.format("%1$05d", 323));
输出结果:
','只适用于10进制,每3位数字之间用“,”分隔。
例子:
System.out.println(String.format("%1$,d", 89986536))
输出结果:
'('若参数是负数,则结果中不添加负号而是用圆括号把数字括起来,如果为正数,正数不管有“+”或无“+”输出结果不带“+”也不带括号。
例子:
System.out.println(String.format("%1$(d", -323));
System.out.println(String.format("%1$(d", +23));
输出结果:
1.3.最小宽度:
此处直接用例子,给参数指定宽度为5,不足的用0填充。
例子:
System.out.println(String.format("%1$05d", 323));
输出结果:
1.4.转换方式:
d表示十进制。
o表示八进制。
x或X表示十六进制。
2.运用在浮点数身上:
函数为:public static String format(String format,Object... args)
其中参数format的格式为:%[index$][标识][最小宽度][.精度]转换方式注:上文已经介绍,大部分原理与上文相同,此处将简单介绍:
2.1.标识的解释:
'-'向左对齐(用0填充时不可用,会报错)。
'+'结果总是包括一个符号,
' '正值前加空格,负值前加负号。
'0'结果将用零来填充。
','每3位数字之间用“,”分隔(只适用于fgG的转换)。
'('若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)。
2.2.精度的解释:
此处直接用例子,将323.0的精度定为10。
例子:
System.out.println(String.format("%1$.10f", 323.0));
输出结果:
2.3.转换方式:
'e', 'E'表示结果被格式化为用计算机科学记数法表示的十进制数。
例子:
System.out.println(String.format("%1$e", 0.323));
输出结果:
'f'表示结果被格式化为十进制普通表示方式。
'g', 'G'表示根据具体情况,自动选择用普通表示方式还是科学计数法方式。例子:
System.out.println(String.format("%1$G", 0.000000015));
输出结果:
'a', 'A'表示结果被格式化为带有效位数和指数的十六进制浮点数。
例子:
System.out.println(String.format("%1$a", 123.89558));
输出结果:
3.运用在字符身上:
标识:'-'表示左对齐。
转换方式:c表示字符,
4.运用在百分号身上:
看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“%45”:
例子:
System.out.println(String.format("%1$%%d", 45));
输出结果:
5.运用在日期和时间身上:
此处时间的转换符由't' 和 'T' 定义,占位符格式为:%[index$]t转换符5.1.日期转换符:
c,时间格式如:星期三一月 25 21:17:48 CST 2017。
例子:
System.out.println(String.format("%tc",new Date()));
输出结果:
F,时间格式如:2017-01-25。
例子:
System.out.println(String.format("%tF",new Date()));
输出结果:
D,日期格式如:01/25/17。
例子: