首页 > 编程笔记

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

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

语法1

format(String format,Object……args)

参数说明:
常规类型的格式化可应用于任何参数类型,可通过表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)

参数说明:
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号

推荐阅读