我没有机会在学校参加任何严肃的低级程序设计课程。 (我知道我应该继续学习“幕后花絮”才能成为更好的程序员。)我很欣赏Java的便利性,包括将任何内容粘贴到System.out.print
语句中的能力。但是,您有什么理由想要使用System.out.printf
吗?
另外,我应该在“真实应用程序”中避免这样的打印调用吗?使用某种UI功能将消息打印到客户端的显示器可能更好,对吗?
答案 0 :(得分:28)
printf
类的PrintStream方法提供string formatting类似于C中的printf
函数。
printf
的格式使用Formatter
class' formatting syntax。
当在一行中显示多个变量时,printf
方法特别有用,使用字符串连接会很繁琐:
int a = 10;
int b = 20;
// Tedious string concatenation.
System.out.println("a: " + a + " b: " + b);
// Output using string formatting.
System.out.printf("a: %d b: %d\n", a, b);
此外,编写Java应用程序并不一定意味着编写GUI应用程序,因此在编写控制台应用程序时,可以使用print
,println
,printf
以及将输出到的其他函数System.out
。
答案 1 :(得分:3)
通常在“真实”应用程序中,您将写入日志记录系统,例如java.util.Logging或commons logging,它们能够记录各种级别的详细程度(即“调试”模式,该模式将被禁用)生产环境)。但是,对于快速和脏的临时调试,有时System.out.println()是最简单的方法(假设您的运行时环境将标准输出转储到可以读取它的位置)。
我还应该提到,您始终可以使用“String.format()”来使用格式和变量参数列表创建字符串(然后将此字符串传递给日志记录方法或System.out.println)。这通常比将一堆变量连接成一个字符串更好。
答案 2 :(得分:2)
最好是你需要控制浮点数的精度,做填充等.System.out.print可以打印出各种东西,但你不能用精细的控制精度和填充它
答案 3 :(得分:2)
如果使用大多数真实程序,则使用日志记录。可以通过日志记录配置打开/关闭调试消息。以log4j为例。