У меня вопрос, похожий на 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.print
используется значительно чаще, чем System.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
Так кроме (я думаю), большинство Java-программистов с помощью System.out.print
, что польза для него над System.out.printf
? Есть ли заметная разница в эффективности памяти или времени?