在System.out.printf上使用System.out.print有什么好处?

时间:2015-05-18 14:58:45

标签: java printf system.out printstream

我有一个类似于Is there a good reason to use "printf" instead of "print" in java?的问题。该问题询问并回答了使用System.out.print优于System.out.printf的好处。我很好奇首先使用System.out.print优于System.out.printf的好处。

根据我的经验,我认为System.out.printSystem.out.printf更频繁地使用{。}}。

使用System.out.printf时,格式化数字时更具可读性。您仍然可以使用+连接字符串的语法糖,如第二个System.out中所示。 System.out.printf还会返回PrintStream,以防您想对其执行任何操作。

示例:

int hour = 6;
int minutes = 5;
int seconds = 4;
System.out.printf("Time: %d:%02d:%02d", hour, minutes, seconds);
System.out.printf("Time: " + hour + ":%02d:%02d", minutes, seconds);
System.out.print("Time: " + hour + ":" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds));
//Output for each line:  Time: 6:05:04

System.out.printf("Print something!");
System.out.print("Print something!");
//Output for each line:  "Print something!"

System.out.printf("End a line\n");
System.out.println("End a line");
//Output for each line:  End a line [followed by a line break]

String x = "a variable";
System.out.printf("Add %s", x);
System.out.printf("Add " + x);
System.out.print("Add " + x);
//Output for each line:  Add a variable

除了(我认为)大多数使用System.out.print的Java程序员之外,它对System.out.printf有什么好处?内存或时间效率是否存在显着差异?

1 个答案:

答案 0 :(得分:1)

带字符串连接的

printprintf稍微有效。使用print,开发人员在编译时确定需要将值插入到字符串中,但是使用printf,您要求JRE解析您的格式字符串并将值插入到运行。除非你进行大量的打印,否则这可能是一个微不足道的差异,所以你应该选择最容易维护的东西。