java.lang.String.format() 方法使用指定的语言环境、指定的格式字符串和参数返回格式化字符串。
语法
public static String format(Locale l,
String format,
Object... args)
参数
format | 指定格式字符串。 |
args | 指定格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可能为零。 |
l | 指定格式化期间要应用的区域设置。 |
返回值
返回格式化字符串。
异常
抛出 IllegalFormatException,如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。
示例:
在下面的示例中,format() 方法使用指定的语言环境、指定的格式字符串和参数返回格式化字符串。
import java.lang.*;
import java.util.*;
public class MyClass {
public static void main(String[] args) {
//创建语言环境
Locale l = new Locale("English", "US");
String str1 = String.format(l, "1. %s", "Hello");
String str2 = String.format(l, "2. %f", 10.565);
//返回10个小数字符,用0填充
String str3 = String.format(l, "3. %5.10f", 10.565);
//打印所有格式化字符串
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}
上述代码的输出将是:
1. Hello
2. 10.565000
3. 10.5650000000
Java 字符串格式说明符
下表描述了 Java 字符串支持的格式说明符。
说明符 | 数据类型 | 输出 |
---|---|---|
%a | 除 BigDecimal 之外的浮点 | 返回浮点数的十六进制输出 |
%b | 任何类型 | 如果非空则为"true",如果为空则为"false" |
%c | 字符 | Unicode 字符 |
%d | 整数,包括 byte、short、int、long、bigint | 十进制整数 |
%e | 浮点数 | 科学记数法的十进制数 |
%f | 浮点数 | 十进制数 |
%g | 浮点数 | 十进制数,可能是科学数取决于精度和值的表示法 |
%h | 任何类型 | 来自 hashCode() 方法的值的十六进制字符串 |
%n | 无 | 平台特定行分隔符 |
%o | 整数,包括byte、short、int、long、bigint | 八进制数 |
%s | 任意类型 | 字符串值 |
%t | 日期/时间,包括 long、Calendar、Date 和 TemporalAccessor | %t 是日期/时间转换的前缀。此后需要更多格式化标志。 |
%x | 整数,包括 byte、short、int、long、bigint | 十六进制string |
示例:
在下面的示例中,使用多个参数返回格式化字符串。
import java.lang.*;
import java.util.*;
public class MyClass {
public static void main(String[] args) {
String name = "Marry";
int age = 22;
Locale l = new Locale("English", "US");
//使用指定区域设置格式化字符串
String MyString = String.format(l, "My name is %s and"
+ " I am %d years old.", name, age);
//打印格式化字符串
System.out.println(MyString);
}
}
上述代码的输出将是:
My name is Marry and I am 22 years old.