Java 字符串 format()
方法根据给定的语言环境、格式和参数返回格式化的字符串。
如果你没有在 String.format() 方法中指定语言环境,它会通过调用 Locale.getDefault() 方法使用默认语言环境。
java语言的format()方法类似于c语言的sprintf()函数和java语言的printf()方法。
语法
public static String format(String format, Object... args)
public static String format(Locale locale, String format, Object... args)
参数
- locale :指定要应用于 format() 方法的语言环境。
- format : 字符串的格式。
- args :格式字符串的参数。它可能为零或更多。
返回值
格式化后的字符串
抛出异常
- NullPointerException : 如果格式为空。
- IllegalFormatException : 如果格式非法或不兼容。
内部实现
public static String format(String format, Object... args) {
return new Formatter().format(format, args).toString();
}
方法示例1
public class FormatExample{
public static void main(String args[]){
String name="yxjc123";
String sf1=String.format("name is %s",name);
String sf2=String.format("value is %f",32.33434);
String sf3=String.format("value is %32.12f",32.33434);
System.out.println(sf1);
System.out.println(sf2);
System.out.println(sf3);
}
}
name is yxjc123
value is 32.334340
value is 32.334340000000
value is 32.334340
value is 32.334340000000
Java字符串格式说明符
在这里,我们提供了一个 Java 字符串支持的格式说明符表。
格式说明符 | 数据类型 | 输出 |
---|---|---|
%a | 浮点数(除了BigDecimal) | 返回浮点数的十六进制输出。 |
%b | 任何类型 | 如果非空则为"真",如果为空则为"假" |
%c | 字符 | Unicode 字符 |
%d | 整数(包括字节、短整数、整数、长整数、大整数) | 十进制整数 |
%e | 浮点数 | 科学计数法中的十进制数 |
%f | 浮点数 | 十进制数 |
%g | 浮点数 | 十进制数,可能采用科学计数法,具体取决于精度和值。 |
%h | 任何类型 | 来自 hashCode() 方法的值的十六进制字符串。 |
%n | 无 | 特定于平台的行分隔符。 |
%o | 整数(包括字节、短整数、整数、长整数、大整数) | 八进制数 |
%s | 任何类型 | 字符串值 |
%t | 日期/时间(包括 long、Calendar、Date 和 TemporalAccessor) | %t 是日期/时间转换的前缀。在此之后需要更多的格式化标志。请参阅下面的日期/时间转换。 |
%x | 整数(包括字节、短整数、整数、长整数、大整数) | 十六进制字符串。 |
方法示例2
此方法支持各种数据类型并将它们格式化为字符串类型。让我们看一个例子。
public class FormatExample2 {
public static void main(String[] args) {
String str1 = String.format("%d", 101); // 整数值
String str2 = String.format("%s", "Amar Singh"); // 字符串值
String str3 = String.format("%f", 101.00); // 浮点值
String str4 = String.format("%x", 101); // 十六进制值
String str5 = String.format("%c", 'c'); // 字符值
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
System.out.println(str5);
}
}
101
Amar Singh
101.000000
65
c
方法示例3
除了格式,我们可以设置任何值的宽度、填充等。让我们看一个为整数值设置宽度和填充的示例。
public class FormatExample3 {
public static void main(String[] args) {
String str1 = String.format("%d", 101);
String str2 = String.format("|%10d|", 101); // 指定整数的长度
String str3 = String.format("|%-10d|", 101); // 在指定宽度内左对齐
String str4 = String.format("|% d|", 101);
String str5 = String.format("|%010d|", 101); // 用零填充
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
System.out.println(str5);
}
}
101
| 101|
|101 |
| 101|
|0000000101|