使用 System.out.print 比 System.out.printf 有什么好处?
What is the benefit of using System.out.print over System.out.printf?
我有一个类似于 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.print
比 System.out.printf
使用得更频繁。
使用System.out.printf
,格式化数字时更易读。您仍然拥有将字符串与 +
连接起来的语法糖,如第二个 System.out 所示。 System.out.printf
还有 returns 一个 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
所以除了(我认为)大多数 Java 程序员使用 System.out.print
,它比 System.out.printf
有什么好处?内存或时间效率有明显差异吗?
使用字符串连接的 print
比 printf
效率略高。使用 print
,您的开发人员在编译时确定需要将值插入到字符串中的位置,但是使用 printf
,您要求 JRE 解析您的格式字符串并将值插入到运行。除非您进行大量打印,否则这可能是一个可以忽略不计的差异,因此您应该选择最容易维护的。
我有一个类似于 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.print
比 System.out.printf
使用得更频繁。
使用System.out.printf
,格式化数字时更易读。您仍然拥有将字符串与 +
连接起来的语法糖,如第二个 System.out 所示。 System.out.printf
还有 returns 一个 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
所以除了(我认为)大多数 Java 程序员使用 System.out.print
,它比 System.out.printf
有什么好处?内存或时间效率有明显差异吗?
print
比 printf
效率略高。使用 print
,您的开发人员在编译时确定需要将值插入到字符串中的位置,但是使用 printf
,您要求 JRE 解析您的格式字符串并将值插入到运行。除非您进行大量打印,否则这可能是一个可以忽略不计的差异,因此您应该选择最容易维护的。