Java String.format()用法

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。

语法

Format(String, Object)  将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。 
Format(String, array<>[]()[])  将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。 
Format(IFormatProvider, String, array<>[]()[])  将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。 
Format(String, Object, Object)  将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。 
Format(String, Object, Object, Object)  将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

转换符

转  换  符

说    明 

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符


转换符用例

  1. public static void main(String[] args) {  
  2.     String str=null;  
  3.     str=String.format("Hi,%s", "王力");  
  4.     System.out.println(str);  
  5.     str=String.format("Hi,%s:%s.%s", "王南","王力","王张");            
  6.     System.out.println(str);                           
  7.     System.out.printf("字母a的大写是:%c %n", 'A');  
  8.     System.out.printf("3>7的结果是:%b %n", 3>7);  
  9.     System.out.printf("100的一半是:%d %n", 100/2);  
  10.     System.out.printf("100的16进制数是:%x %n", 100);  
  11.     System.out.printf("100的8进制数是:%o %n", 100);  
  12.     System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);  
  13.     System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);  
  14.     System.out.printf("上面价格的指数表示:%e %n", 50*0.85);  
  15.     System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);  
  16.     System.out.printf("上面的折扣是%d%% %n", 85);  
  17.     System.out.printf("字母A的散列码是:%h %n", 'A');  
  18. }  

输出结果


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

日期和时间转换符

日期的转换符

c,星期六 十月 27 14:21:20 CST 2007 F,2007-10-27 D,10/27/07 r,02:25:51 下午
T,14:28:16 R,14:28 b, 月份简称
B, 月份全称
a, 星期简称
A, 星期全称
C, 年前两位(不足两位补零)
y, 年后两位(不足两位补零)
j, 当年的第几天
m, 月份(不足两位补零)
d, 日期(不足两位补零)
e, 日期(不足两位不补零)

时间的转换符

H, 24小时制的小时(不足两位补零)
k, 24小时制的小时(不足两位不补零)
I, 12小时制的小时(不足两位补零)
i, 12小时制的小时(不足两位不补零)
M, 分钟(不足两位补零)
S, 秒(不足两位补零)
L, 毫秒(不足三位补零)
N, 毫秒(不足9位补零)
p, 小写字母的上午或下午标记,如中文为“下午”,英文为pm
z, 相对于GMT的时区偏移量,如+0800 Z, 时区缩写,如CST
s, 自1970-1-1 00:00:00起经过的秒数
Q, 自1970-1-1 00:00:00起经过的豪秒

实例一

Date now = new Date();
String str = String.format("%tF", now); // 2014-10-12
实例二


  1. public static void main(String[] args) {  
  2.     Date date=new Date();                                  
  3.     //c的使用  
  4.     System.out.printf("全部日期和时间信息:%tc%n",date);          
  5.     //f的使用  
  6.     System.out.printf("年-月-日格式:%tF%n",date);  
  7.     //d的使用  
  8.     System.out.printf("月/日/年格式:%tD%n",date);  
  9.     //r的使用  
  10.     System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
  11.     //t的使用  
  12.     System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
  13.     //R的使用  
  14.     System.out.printf("HH:MM格式(24时制):%tR",date);  
  15. }  
输出结果



  1. 全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012  
  2. 年-月-日格式:2012-09-10  
  3. 月/日/年格式:09/10/12  
  4. HH:MM:SS PM格式(12时制):10:43:36 上午  
  5. HH:MM:SS格式(24时制):10:43:36  
  6. HH:MM格式(24时制):10:43  




版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。