Java 是否有充分的理由使用;printf";而不是",;“打印”;在爪哇?

Java 是否有充分的理由使用;printf";而不是",;“打印”;在爪哇?,java,printing,printf,Java,Printing,Printf,我在学校没有机会参加任何严肃的低级编程课程。(我知道我真的应该继续学习“幕后工作”,成为一名更好的程序员。)我欣赏Java的便利性,包括能够将任何东西粘贴到System.out.print语句中。但是,您是否有任何理由想改用System.out.printf 另外,我应该避免在“真实应用程序”中使用这种打印调用吗?可能最好使用某种UI功能将消息打印到客户端显示器上,对吗?如果需要控制浮点数的精度、进行填充等,则更好。System.out.print可以打印各种内容,但是你不能用它来对精度和填充进

我在学校没有机会参加任何严肃的低级编程课程。(我知道我真的应该继续学习“幕后工作”,成为一名更好的程序员。)我欣赏Java的便利性,包括能够将任何东西粘贴到
System.out.print
语句中。但是,您是否有任何理由想改用
System.out.printf


另外,我应该避免在“真实应用程序”中使用这种打印调用吗?可能最好使用某种UI功能将消息打印到客户端显示器上,对吗?

如果需要控制浮点数的精度、进行填充等,则更好。System.out.print可以打印各种内容,但是你不能用它来对精度和填充进行细粒度的控制。

通常在“真实”的应用程序中,你会写入一个日志系统,比如java.util.logging或commons logging,它能够记录各种级别的详细信息(即“调试”模式,在生产环境中会被禁用)。然而,对于快速而肮脏的临时调试,有时System.out.println()是最简单的方法(假设您的运行时环境将标准输出转储到您可以读取的地方)

我还应该提到,您可以始终使用“String.format()”创建一个使用格式和变量参数列表的字符串(然后将该字符串传递到日志方法或System.out.println)。这通常比将一组变量连接到一个字符串要好。

类的方法提供了类似于C中的
printf
函数的功能

printf
的格式使用

当在一行中显示多个变量时,
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
的函数,如果大多数实际程序都使用日志记录。调试消息可以通过日志记录配置打开/关闭。以log4j为例。

更好的例子是使用%+x.yf的浮点,其中x和y是不同的数字。