手册目录
Java 教程
Java 方法
Java 类
Java 文件处理
Java 数据结构
Java 案例
Java 参考手册
Java 关键字
Java String 方法
Java Math 方法
Java Output 方法
Java Arrays 类
Java ArrayList 方法
Java LinkedList 方法
Java HashMap 方法
Java Scanner 方法
Java 迭代器接口
Java 错误和异常类型
Java.io 包教程
Java.lang 包教程
Java.math 包教程
java.time 包教程
Java.util 包教程
Java 正则表达式教程
java.util.zip 包教程
前言
定义和用法format() 方法使用区域设置、格式和附加参数返回一个格式化的字符串。如果未向此方法传递区域设置,则使用 Locale.getDefault()
format() 方法使用区域设置、格式和附加参数返回一个格式化的字符串。
如果未向此方法传递区域设置,则使用 Locale.getDefault() 提供的区域设置。
附加参数中的数据会被格式化并写入格式字符串中的占位符,这些占位符由 % 符号标记。参数的格式化方式取决于 % 符号后面的字符序列。
占位符的形式为:
注释:[方括号]中的组件是可选的。
以下是每个组件的解释:
arg$ - 可选。数字后跟 $ 符号,指示要使用哪个附加参数,参数编号从 1 开始。这可以用 < 替换,表示应使用前一个占位符中的参数。
flags - 可选。以下字符中的任何一个的序列:
- - 通过在右侧而不是左侧添加填充空格,使输出左对齐。# - 根据转换方式显示格式化数据的另一种表示形式。+ - 使正数始终带有 "+" 前缀。 - (空格字符)这会在正数前加上一个空格,主要是为了使正数的数字能够与负数的数字对齐。0 - 在数字左侧用零进行填充。, - 将数字分组(例如,按千位分组),并在各组之间放置分隔符。这受区域设置的影响。( - 将负数用括号括起来。width - 可选。整数,指定输出应占用的最小字符数。如果需要,将在右侧添加空格以达到此数字,如果使用了 "-" 标志,则在左侧添加空格。
.precision 可选。点(.)后跟整数,表示在格式化数据中显示多少位小数。
conversion - 必需。字符,指示应如何表示参数的数据。如果该字符是大写,则数据将尽可能以大写格式表示。可能的字符列表如下表所示。
| 字符 | 转换 | 描述 |
|---|---|---|
% |
百分号 | 在输出中显示一个字面的 "%" 字符。 |
n |
换行符 | 在输出中显示一个换行符。 |
b 或 B
|
布尔值 |
将参数的布尔值显示为 "true" 或 "false"。 如果使用 "B",则显示为 "TRUE" 或 "FALSE"。 |
h 或 H
|
无符号十六进制整数 |
将参数的二进制数据表示为无符号十六进制整数。 如果使用 "H",则数字 A 到 F 以大写显示。 注意:对于除正整数以外的任何数据,这并不表示其真实值。 |
s 或 S
|
字符串 |
显示参数的默认字符串表示形式。 如果使用 "S",则字符串将尽可能转换为大写。 |
c 或 C
|
Unicode 字符 |
显示参数的 Unicode 字符表示形式。对于整数,这是与数字对应的 Unicode 字符。 如果使用 "C",则字符将尽可能转换为大写。 |
d |
十进制整数 | 将整数表示为十进制整数。 |
o |
八进制整数 | 将整数表示为八进制整数。"#" 标志将在数字前加上 "0"。 |
x 或 X
|
十六进制整数 |
将整数表示为十六进制整数。"#" 标志将在数字前加上 "0x"。 如果使用 "X",则数字 A 到 F 和字母 X 以大写显示。 |
e 或 E
|
科学计数法 |
将浮点数表示为科学计数法。如果使用 "E",则表示的 "E" 字母将为大写。 "#" 标志将强制显示小数点,即使没有小数位数。 |
f |
浮点数 | 表示浮点数。"#" 标志将强制显示小数点,即使没有小数位数。 |
g 或 G
|
通用数字 | 对于浮点数,显示 f 和 e 或 E 之间的最短表示。 |
a 或 A
|
十六进制浮点数 | 用十六进制数字显示浮点数的内部表示。 |
t 或 T
|
时间或日期 |
显示格式化的日期或时间。t 或 T 后面必须跟一个字符,指示应如何格式化日期或时间。 如果使用 "T",则日期的文本部分(如 "JANUARY")将为大写。 以下字符可用于日期和时间格式化:
|
返回一个格式化的字符串:
String myStr = "Hello %s! One kilobyte is %,d bytes."; String result = String.format(myStr, "World", 1024); System.out.println(result);
点击 "运行实例" 按钮查看在线实例
使用一个包含所有组件的占位符:
String result = String.format("%2$,3.2f %1$s", "meters", 1260.5052);
System.out.println(result);
点击 "运行实例" 按钮查看在线实例
这是占位符 %2$,3.2f 各部分的工作方式:
2$ 表示使用第二个参数的值, 表示数字应分组(通常按千位)3 表示数据的表示形式应至少为 3 个字符长.2 表示小数点后应有两位数字f 表示数据被表示为浮点数以不同的顺序使用参数:
String result = String.format("%3$c %2$c %1$c", 'a', 'b', 'c');
System.out.println(result);
点击 "运行实例" 按钮查看在线实例
格式化一个浮点数:
double myNumber = 123456.78;
String result;
// 默认
result = String.format("%f", myNumber);
System.out.println(result);
// 两位小数
result = String.format("%.2f", myNumber);
System.out.println(result);
// 无小数位数
result = String.format("%.0f", myNumber);
System.out.println(result);
// 无小数位数但保留小数点
result = String.format("%#.0f", myNumber);
System.out.println(result);
// 分组数字
result = String.format("%,.2f", myNumber);
System.out.println(result);
// 科学计数法,保留两位小数
result = String.format("%.2e", myNumber);
System.out.println(result);
点击 "运行实例" 按钮查看在线实例
用 Unix 时间戳格式化日期:
long date = 1711638903488L; // Unix 时间戳(自 1970 年 1 月 1 日以来的毫秒数)
String result;
// 时间
result = String.format("%tl:%<tM %<tp", date);
System.out.println(result);
// 月份和日期
result = String.format("%tB %<te", date);
System.out.println(result);
// 完整的日期表示
result = String.format("%tc", date);
System.out.println(result);
点击 "运行实例" 按钮查看在线实例
通过 Unicode 码点表示字符:
String result;
// 通过 Unicode 码点表示字符
result = String.format("%c%c%c%c%c", 72, 101, 108, 108, 111);
System.out.println(result);
// 强制将 Unicode 字符转换为大写
result = String.format("%C%C%C%C%C", 72, 101, 108, 108, 111);
System.out.println(result);
点击 "运行实例" 按钮查看在线实例
其中之一:
public static String format(Locale locale, String format, Object... args) public static String format(String format, Object... args)
点击 "运行实例" 按钮查看在线实例
| 参数 | 描述 |
|---|---|
| locale | 可选。用于确定某些格式设置(例如,用于小数点和分组分隔符的字符)的区域设置。 |
| format | 必需。将被返回的字符串,其中可以包含占位符,用于指示如何格式化其他参数。 |
| args | 可选。传递给方法的任意数量的附加参数,它们的值可以被格式化并显示在返回的字符串中。 |
| 返回: | 使用指定的区域设置、格式和参数格式化后的 String 值。 |
|---|---|
| 抛出: |
|
| Java 版本: | 1.5 |
相关视频
科技资讯
24小时阅读榜
1
2
3
4
5
6
7
8
9
10
精品课程
共5课时 | 17.4万人学习
共49课时 | 78.1万人学习
共29课时 | 62.5万人学习
共25课时 | 39.7万人学习
共43课时 | 73.8万人学习