美文网首页
字符串格式化:String.format()

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

作者: 鲁西西z | 来源:发表于2018-03-07 15:08 被阅读10次

    常规类型的格式化

    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

    相关文章

      网友评论

          本文标题:字符串格式化:String.format()

          本文链接:https://www.haomeiwen.com/subject/mqgdfftx.html