System.out.printf
和 System.out.format
完全一样还是可能有所不同?
System.out
是一个 PrintStream
,并引用 PrintStream.printf
的 javadoc
调用此方法 形式
其行为方式与调用完全相同out.printf(l, format, args)
out.format(l, format, args)
两个 printf 重载表单的实际实现
public PrintStream printf(Locale l, String format, Object ... args) {
return format(l, format, args);
}
和
public PrintStream printf(String format, Object ... args) {
return format(format, args);
}
使用 format 方法的重载形式
public PrintStream format(Locale l, String format, Object ... args)
和
public PrintStream format(String format, Object ... args)
分别。
没有区别。它们的行为都相同。
它们之间的区别在于 printf() 将格式化的字符串打印到控制台,就像 System.out.println() 一样,但是 format() 方法返回一个格式化的字符串,您可以存储或使用它你想要的方式。
printf
和format
方法之间的主要区别是:
否则,根据其功能,使用性质也有所不同。向数字添加前导零的示例:
int num = 5;
String str = String.format("%03d", num); // 005
System.out.printf("Original number %d, leading with zero : %s", num, str);
// Original number 5, leading with zero : 005