在学校,我还没有机会参加任何严肃的低级编程课程。(我知道我真的应该继续学习“幕后”,成为一名更好的程序员。)我欣赏Java语言的便利,包括将任何内容插入到System.out.print
语句中的能力。然而,有没有什么理由让你转而使用System.out.printf
呢?
另外,在“真正的应用程序”中,我应该避免像这样的打印调用吗?使用某种UI函数将消息打印到客户机的显示器上可能更好,对吧?
发布于 2009-02-14 00:57:31
PrintStream类的printf
方法提供了类似于C中的printf
函数的string formatting。
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应用程序并不一定意味着编写图形用户界面应用程序,因此在编写控制台应用程序时,可以使用print
、println
、printf
和其他将输出到System.out
的函数。
发布于 2009-02-14 00:48:55
如果你需要控制你的浮点数的精度,做填充等,这是更好的。System.out.print可以打印出所有类型的东西,但你不能用它进行精度和填充的细粒度控制。
发布于 2009-02-14 00:49:47
通常,在“真实”应用程序中,您需要编写日志记录系统,如java.util.Logging或commons logging,它们能够记录各种级别的详细信息(即“调试”模式,在生产环境中将被禁用)。然而,对于快速和肮脏的临时调试,有时System.out.println()是最简单的方法(假设您的运行时环境将标准输出转储到您可以读取的地方)。
我还应该提到,您可以始终使用"String.format()“通过格式和变量参数列表创建字符串(然后将该字符串传递到日志记录方法或System.out.println中)。这通常比将一堆变量连接成一个字符串要好。
https://stackoverflow.com/questions/548249
复制相似问题