Java教程-Java String format()方法

Java中的String.format()方法根据指定的语言环境、格式和参数返回格式化的字符串。
如果在String.format()方法中没有指定语言环境,它将使用默认语言环境,通过调用Locale.getDefault()方法来获取。
format()方法在Java语言中类似于C语言中的sprintf()函数和Java语言中的printf()方法。它可以按照指定的格式将参数插入到字符串中,并返回格式化后的字符串。
内部实现
public static String format(String format, Object... args) {
return new Formatter().format(format, args).toString();
}
语法
有两种类型的string format()方法:
public static String format(String format, Object... args)
public static String format(Locale locale, String format, Object... args)
参数
locale:指定应用于 format() 方法的 locale。
format:字符串格式。
args:格式字符串的参数。可以是零个或多个。
返回值
格式化后的字符串。
抛出异常
NullPointerException:如果 format 为 null。
IllegalFormatException:如果 format 非法或不兼容。
Java String的format()方法示例
public class FormatExample {
public static void main(String args[]) {
String name = "sonoo";
String sf1 = String.format("名字是%s", name);
String sf2 = String.format("值为%f", 32.33434);
String sf3 = String.format("值为%32.12f", 32.33434);//返回12位小数部分,填充0
System.out.println(sf1);
System.out.println(sf2);
System.out.println(sf3);
}
}
测试结果为:
名字是sonoo
值为32.334340
值为 32.334340000000
Java String format() 方法示例2
这个方法支持多种数据类型,并将它们格式化成字符串类型。让我们看一个例子。
public class FormatExample2 {
public static void main(String[] args) {
String str1 = String.format("%d", 101); // Integer value
String str2 = String.format("%s", "Amar Singh"); // String value
String str3 = String.format("%f", 101.00); // Float value
String str4 = String.format("%x", 101); // Hexadecimal value
String str5 = String.format("%c", 'c'); // Char value
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
Java String format()方法示例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|