Java中的printf格式化输出

来源:互联网 发布:凤凰网面试 数据分析 编辑:程序博客网 时间:2024/05/01 19:11
Java的格式化输出等同于C中的String.Format比如System.out.printf("%8.2f", x);

在printf中,可以使用多个参数,例如:System.out.printf("Hello, %s. Next year, you'll be %d", name, age);

支持多个参数时,可以在%s之间插入变量编号,1$表示第一个字符串,2$表示第2个字符串

用于printf的转换符如下表:
  转换符 类型  举例
  d 十进制整数 159
  x  十六进制整数 9f
  o 八进制整数 237
  f 定点浮点数 15.9
  e 指数浮点数 1.59e+01
  g 通常浮点数
  a 十六进制浮点数 0x1.fccdp3
  s 字符串 Hello
  c 字符 H
  b 布尔型 TRue
  h 散列码 42628b2
  tx 日期时间 见时间介绍表
  % 百分号 %

  n 分隔符

时间日期的转换符如下:

 转换符  类型 举例

  C 完整日期和时间 Mon Feb 09 18:05:19 PST 2004
  F ISO 8601 日期 2004-02-09
  D 美国时间格式 (mm/dd/year) 02/09/2004
  T 24小时时间 18:05:19
  r 12小时时间 06:05:19 pm
  R 24小时无秒时间 18:05
  Y 四位年 2004
  y 年的后两位 04
  C 年的前两位 20
  B 月的完整拼写 February
  b or h  月的缩写 Feb
  m 两位月(前补0) 02
  d 两位日(前补0) 09
  e 日期(前不补0) 9
  A 完整星期几 Monday
  a 星期几的缩写 Mon
  j 这一年的第多少天,三位补0 069
  H 24小时制小时,两位补0 18
  k 24小时制小时,两位不补0 18
  I 12小时制小时,两位补0 06
  l 12小时制小时,两位不补0 6
  M 分钟,两位补0 05
  S 秒,两位补0 19
  L 毫秒,三位补0 047
  N 毫微秒,九位补0 047000000
  P 上下午大写 PM
  p 上下午小写 pm
  z RFC 822 numeric offset from GMT -0800
  Z 时区 PST
  s 1970-01-01 00:00:00起秒数 1078884319

  E 1970-01-01 00:00:00起毫秒数  1078884319047


例如:

Integer a = 11;System.out.printf("%d;%d;%d%n",500,2345L,a);//%d表示将整数格式化为10进制整数

在printf函数中,可以使用多个标志,如:System.out.printf("%,.2f", 10000.0 / 3.0);

用于printf的标志如下表

标志目的 举例

  + 打印数字前的符号 +3333.33
  space 在正数之前加空格 | 3333.33|
  0 在数字前补0 003333.33
  - 左对齐 |3333.33 |
  ( 负数括在括号内 (3333.33)
  , 添加分组分隔符 3,333.33
  # (for f ) 包含小数点 3,333.
  # (for x or o) 添加前缀 0x 或 0 0xcafe
  ^ 转化为大写 0XCAFE
  $ 指定格式化参数索引,如%1$d,%1$d表示以十进制和十六进制打印第一个参数 159 9F
  < 格式化前面参数,如%d%<x表示以十进制和十六进制打印同一个参数 159 9F
0 0
原创粉丝点击