System.out.printf和String.format之间的区别

我可以知道java中两者有什么区别? 我正在读一本书,它可以使用它来显示字符串。

第一个写入stdout , 第二个返回String对象。

使用哪个取决于唯一的目的。 如果要在stdout(控制台)中显示字符串,请使用第一个字符串。 如果要获取格式化字符串的句柄以在代码中进一步使用,则使用第二个。

String.format返回一个新的String,而System.out.printf只显示新格式化的String到System.out,有时也称为控制台。

这两段代码在function上是等效的:

 String formattedString = String.format("%d is my favorite number", 42); System.out.print(formattedString); 

 System.out.printf("%d is my favorite number", 42); 

String.format格式化字符串,不显示它们。 我认为你的意思是System.out.println(String.format("......", ....))或类似的构造?

String.format返回格式化的字符串。 System.out.printf还打印格式化的字符串。

这两种方法表现出完全相同的行为。 我们可以将格式(…)与String,Java.util.Formatter(J2SE 5)以及PrintWriter一起使用。