Есть ли веская причина использовать "printf" вместо "print" в java?
У меня не было возможности пройти какие-либо серьезные курсы низкоуровневого программирования в школе. (Я знаю, что мне действительно нужно начинать изучать "закулисные", чтобы быть лучшим программистом.) Я ценю удобства Java, в том числе способность вставлять что-либо в инструкцию System.out.print
. Однако есть ли причина, по которой вы хотели бы использовать System.out.printf
вместо этого?
Кроме того, следует ли избегать вызовов печати, подобных этому в "реальных приложениях"? Вероятно, лучше печатать сообщения на дисплее клиента, используя какую-то функцию пользовательского интерфейса, правильно?
Ответы
Ответ 1
printf
метод PrintStream обеспечивает форматирование строк, аналогичное функции printf
в C.
Форматирование для printf
использует синтаксис форматирования Formatter
.
Метод 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
.
Ответ 2
Обычно в "реальном" приложении вы должны писать в систему ведения журнала, такую как java.util.Logging или commons logging, которые имеют возможность регистрировать различные уровни многословия (то есть режим "отладки", который будет отключен в производственная среда). Однако для быстрой и грязной временной отладки иногда System.out.println() - это самый простой способ сделать что-то (предполагая, что ваша среда выполнения выгружает стандартный вывод где-нибудь там, где вы можете его прочитать).
Я также должен упомянуть, что вы всегда можете использовать "String.format()" для создания строки с использованием формата и списка аргументов переменных (затем передать эту строку в метод ведения журнала или System.out.println). Это часто лучше, чем объединение связки переменных в строку.
Ответ 3
Лучше, если вам нужно контролировать точность чисел с плавающей запятой, делать дополнения и т.д. System.out.print может распечатывать всевозможные вещи, но вы не можете выполнять мелкомасштабное управление точностью и дополнением с помощью он.
Ответ 4
Если используется большинство реальных программ, используется ведение журнала. Отладочные сообщения могут быть включены/выключены с помощью конфигурации ведения журнала. В качестве примера см. Log4j.