字符串格式化:String.format()

2018-03-07  本文已影响10人  鲁西西z

常规类型的格式化

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

1 format(String format, Object... args)

该方法使用指定的字符串格式和参数生成格式化的新字符串。 新字符串始终使用本地语言环境。例如当前日期信息在中国语言环境中的表现形式为“2007-10-27”,但是在其他国家有不同的表现形式。

语法:

String.format(format,args...)

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

2 format(Locale locale, String format, Object... args)

该方法使用指定的语言环境、字符串格式和参数生成一个格式化的新字符串。新字符串始终使用指定的语言环境。

语法:

String.format(locale,format,args...)

locale:指定的语言环境。

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

format()方法中的字符串格式参数有很多种转换符选项,例如:日期、整数、浮点数等。这些转换符的说明如表7.1所示。

转换符
    // Hi, jhon
    System.out.println(String.format("Hi, %s", "jhon"));
    // A, true, 9
    System.out.println(String.format("%c, %b, %d,%2f",'A',true,9,3.00));

这些字符串格式参数不但可以灵活将其他数据类型转换成字符串,而且可以与各种标志组合在一起,生成各种格式的字符串,这些标志如表7.2所示。

转换符标志
    //左对齐 123       
    System.out.println(String.format("左对齐 %-10d",123));
    //数字前加空格:        123
    System.out.println(String.format("数字前加空格: % 10d",123));
    //数字前补零      0000000123
    System.out.println(String.format("数字前补零      %010d",123));
    // $ 格式化参数索引 1$表示第一个参数
    //$标志:  111 , 222
    System.out.println(String.format("$标志:  %1$d , %2$d",111,222));

日期和时间字符串格式化

在程序界面中经常需要显示时间和日期,但是其显示的 格式经常不尽人意,需要编写大量的代码经过各种算法才得到理想的日期与时间格式。字符串格式中还有%tx转换符没有详细介绍,它是专门用来格式化日期和时 间的。%tx转换符中的x代表另外的处理日期和时间格式的转换符,它们的组合能够将日期和时间格式化成多种格式。

1.常见日期时间格式化

格式化日期与时间的转换符定义了各种格式化日期字符串的方式,其中最常用的日期和时间的组合格式如表7.3所示。


常见日期和时间组合的格式
    Date date = new Date();
    //完整日期和时间:星期三 三月 07 14:10:34 GMT+08:00 2018
    System.out.println(String.format("完整日期和时间:%tc",date));
    //年-月-日格式:2018-03-07
    System.out.println(String.format("年-月-日格式:%tF",date));
    //月/日/年格式:03/07/18
    System.out.println(String.format("月/日/年格式:%tD",date));
    //HH:MM:SS PM格式:02:13:55 下午
    System.out.println(String.format("HH:MM:SS PM格式:%tr",date));
    //HH:MM:SS格式:14:13:55
    System.out.println(String.format("HH:MM:SS格式:%tT",date));
    //HH:MM格式:14:13
    System.out.println(String.format("HH:MM格式:%tR",date));

2.格式化日期字符串

定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如表7.4所示。


日期格式化转换符

3.格式化时间字符串

和日期格式转换符相比,时间格式的转换符要更多、更精确。它可以将时间格式化成时、分、秒甚至时毫秒等单位。格式化时间字符串的转换符如表7.5所示。


时间格式化转换符

参考 http://kgd1120.iteye.com/blog/1293633

上一篇下一篇

猜你喜欢

热点阅读