Подтвердить что ты не робот

Есть ли веская причина использовать "printf" вместо "print" в java?

У меня не было возможности пройти какие-либо серьезные курсы низкоуровневого программирования в школе. (Я знаю, что мне действительно нужно начинать изучать "закулисные", чтобы быть лучшим программистом.) Я ценю удобства Java, в том числе способность вставлять что-либо в инструкцию System.out.print. Однако есть ли причина, по которой вы хотели бы использовать System.out.printf вместо этого?

Кроме того, следует ли избегать вызовов печати, подобных этому в "реальных приложениях"? Вероятно, лучше печатать сообщения на дисплее клиента, используя какую-то функцию пользовательского интерфейса, правильно?

4b9b3361

Ответ 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.