• Java format()方法:格式化字符串

    Java String 类的format()方法使用指定的格式字符串和参数返回一个格式化字符串。

    语法1

    format(String format,Object……args)

    参数说明:

    • format:格式字符串。
    • args:格式字符串中由格式说明符引用的参数。参数数目是可变的,可以为 0。

    常规类型的格式化可应用于任何参数类型,可通过表1所示的转换符来实现。

    表1 常规转换符
    转换符 说  明 示  例
    %b、%B 格式化为布尔类型 false
    %h、%H 格式化为散列码 A05A5198
    %s、%S 格式化为字符串类型 "abc"
    %c、%C 格式化为字符类型 'w'
    %d 格式化为十进制数 26
    %0 格式化为八进制整数 12
    %x、%X 格式化为十六进制整数 4b 1
    %e 格式化为用计算机科学计数法表示的十进制数 1.700000e+01
    %a 格式化为带有效位数和指数的十六进制浮点值 0X1.C000000000001P4
    %n 结果为特定于平台的行分隔符  
    %% 结果为字面值%, %

    示例

    使用 String 类的 format 方法实现将“400/2”返回结果类型转换为字符串,并将“3>5”返回结果格式化为布尔类型。

    String str = String.format("%d",400/2);
    String str2 = String.format("%b",3>5);

    将字符串 str 与 str2 在控制台上输出,输出结果如下:
    200
    false

    语法2

    通过将给定的特殊转换符作为参数来实现对日期和时间字符串的格式化。

    format(Locale l,String format,Object……args)

    参数说明:

    • l:格式化过程中要应用的语言环境。如果 l 为 null,则不进行本地化。
    • format:格式字符串。
    • args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为 0。参数的最大数目受 Java Virtual Machine Specification 所定义的 Java 数组最大维度的限制。有关 null 参数的行为依赖于转换。

    format() 方法常用的日期和时间的格式转换符如表2所示。

    表2 常见的日期和时间转换符
    转换符 说 明 示 例
    %te 一个月中的某一天(1〜31) 12
    %tb 指定语言环境的月份简称 Jan (英文)、一月(中文)
    %tB 指定语言环境的月份全称 February (英文)、二月(中文)
    %tA 指定语言环境的星期几全称 Monday (英文)、星期一(中文)
    %ta 指定语言环境的星期几简称 Mon (英文)、星期一(中文)
    %tc 包括全部日期和时间信息 星期三 十月 25 13:37:22 CST 2008
    %tY 4位年份 2008
    %tj 一年中的第几天(001〜366) 060
    %tm 月份 05
    %td 一个月中的第几天(01〜31) 07
    %ty 两位年份 08

    典型应用

    String 类的 format 方法可以格式化日期和时间,本示例实现将当前日期以 4 位年份、月份全称、两位日期形式输出。

    本示例的关键代码如下:

    public static void main(String[] args){
        Date date=new Date();//定义Date类对象
        Locale form=Locale.US;
        String year=String.format(form,"%tY",date);//将当前年份进行格式化
        String month=String.format(form,"%tB",date);//将当前月份进行格式化
        String day=String.format(form,"%td",date);//将当前日期进行格式化
        System.out.println("今年是:"+year+"年");//将格式化后的日期输出
        System.out.println("现在是:"+month);
        System.out.println("今天是:"+day+"号");
    }

    运行结果如下:

    今年是:2011年
    现在是:March
    今天是:   22号

更多...

加载中...