Java--格式化输出
Java的格式化输出等同于String.Format,与C有很大的相似,比如
System.out.printf("%8.2f", x);
在printf中,可以使用多个参数,例如:
System.out.printf("Hello, %s. Next year, you'll be %d", name, age);
用于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 | 分隔符 |
在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 |
时间日期的转换符如下:
| 转换符 | 类型 | 举例 |
|---|---|---|
| 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 |

浙公网安备 33010602011771号