51

是否完全一样System.out.printfSystem.out.format或者它们可能在某种程度上有所不同?

4

4 回答 4

54

System.out是一个PrintStream,并引用 javadocPrintStream.printf

调用此表单方法的out.printf(l, format, args) 行为与调用完全相同 out.format(l, format, args)

于 2013-04-26T10:42:53.307 回答
17

两种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)

分别。

于 2013-04-26T10:59:57.077 回答
15

No difference.They both behave the same.

于 2013-04-26T10:44:19.743 回答
1

printfformat方法之间的主要区别是:

  • printf:将格式化的字符串打印到控制台,就像 System.out.println() 但是
  • 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
于 2021-03-13T13:50:48.973 回答