JAVA字符串格式化与String.format( )

来源:互联网 发布:互联网大数据图片 编辑:程序博客网 时间:2024/06/15 13:02

常规类型的格式化

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。

format()方法有两种重载形式。

  • format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。

  • format(Locale locale, String format, Object… args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。

除了使用String的format方法进行字符格式化外,java还可根据转换符直接打印指定格式的字符。

二者归根到底都使用的是java.util.Formatter。

这里写图片描述


显示不同转换符实现不同数据类型到字符串的转换,如图所示。

这里写图片描述


示例如下:

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("3>7的结果是:%b %n", 3>7);          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');      }

结果如下:

Hi,王力Hi,王南:王力.王张字母a的大写是:A 3>7的结果是:false 100的一半是:50 10016进制数是:64 1008进制数是:144 50元的书打8.5折扣是:42.500000 元上面价格的16进制数是:0x1.54p5 上面价格的指数表示:4.250000e+01 上面价格的指数和浮点数结果的长度较短的是:42.5000 上面的折扣是85% 字母A的散列码是:41 

搭配转换符的标志,如图所示。

这里写图片描述

输出结果如下:

格式参数$的使用:99,abc显示正负数的符号:+99与-99最牛的编号是:007Tab键的效果是:       7整数分组的效果是:9,989,997一本书的价格是:                                          49.80000
原创粉丝点击