JAVA字符串格式化-String.format()的使用题稿.doc
文本预览下载声明
?
JAVA字符串格式化-String.format()的使用
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。
format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。
显示不同转换符实现不同数据类型到字符串的转换,如图所示。
转? 换? 符 说??? 明? 示??? 例 %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类型中较短的) ? %h 散列码 ? %% 百分比类型 % %n 换行符 ? %tx 日期与时间类型(x代表不同的日期与时间转换符 ? 测试用例
[java]?view plaincopy
public?static?void?main(String[]?args)?{??
????String?str=null;??
????str=String.format(Hi,%s,?王力);??
????System.out.println(str);??
????str=String.format(Hi,%s:%s.%s,?王南,王力,王张);????????????
????System.out.println(str);???????????????????????????
????System.out.printf(字母a的大写是:%c?%n,?A);??
????System.out.printf(37的结果是:%b?%n,?37);??
????System.out.printf(100的一半是:%d?%n,?100/2);??
????System.out.printf(100的16进制数是:%x?%n,?100);??
????System.out.printf(100的8进制数是:%o?%n,?100);??
????System.out.printf(50元的书打8.5折扣是:%f?元%n,?50*0.85);??
????System.out.printf(上面价格的16进制数是:%a?%n,?50*0.85);??
????System.out.printf(上面价格的指数表示:%e?%n,?50*0.85);??
????System.out.printf(上面价格的指数和浮点数结果的长度较短的是:%g?%n,?50*0.85);??
????System.out.printf(上面的折扣是%d%%?%n,?85);??
????System.out.printf(字母A的散列码是:%h?%n,?A);??
}??
输出结果
[plain]?view plaincopy
Hi,王力??
Hi,王南:王力.王张??
字母a的大写是:A???
37的结果是:false???
100的一半是:50???
100的16进制数是:64???
100的8进制数是:144???
50元的书打8.5折扣是:42.500000?元??
上面价格的16进制数是:0x1.54p5???
上面价格的指数表示:4.250000e+01???
上面价格的指数和浮点数结果的长度较短的是:42.5000???
上面的折扣是85%???
字母A的散列码是:41???
搭配转换符的标志,如图所示。
标??? 志 说??? 明 示??? 例 结??? 果 + 为正数或者负数添加符号 (%+d,15) +15 ? 左对齐 (%-5d,15) |15?? | 0 数字前面补0 (%04d, 99) 0099 空格 在整数之前添加指定数量的空格 (% 4d, 99) |? 99| , 以“,”对数字分组 (%,f, 9999.99) 9,999.990000 ( 使用括号包含负数 (%(f, -99.99) (99.990000) # 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0 (%#x, 99)
(%#o, 99) 0x63
0143 ? 格式化前一个转换符所描述的参数 (%f和%3.2f, 99.45) 99.4
显示全部