2009-02-14 2 views
17

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

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

ответ

26

printf метод PrintStream класса обеспечивает string formatting аналогичную printf функции в C.

форматирования для 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.

+0

лучшим примером может быть плавающая точка с использованием% + x.yf, где x и y - разные числа. – Calyth

+3

Есть ли последствия для производительности? –

2

Лучше, если вам нужно контролировать точность чисел с плавающей запятой, делать дополнения и т. Д. System.out.print может распечатывать все виды материалов, но вы не можете выполнять мелкоориентированный контроль точности и отступов с этим.

3

Как правило, в «реальном» приложении вы должны записывать в систему регистрации, такую ​​как java.util.Logging или ведение журналов общего пользования, которые имеют возможность регистрировать различные уровни многословия (то есть режим «отладки», который будет отключен в производственной среде). Однако для быстрой и грязной временной отладки иногда System.out.println() - это самый простой способ сделать что-то (при условии, что ваша среда выполнения выгружает стандартную выходную информацию где-нибудь там, где вы можете ее прочитать).

Следует также упомянуть, что вы всегда можете использовать «String.format()» для создания строки с использованием формата и списка переменных аргументов (затем передать эту строку в метод ведения журнала или System.out.println). Это часто лучше, чем объединение связки переменных в строку.

2

Если используется большинство реальных программ, используется регистрация. Отладочные сообщения могут быть включены/выключены с помощью конфигурации ведения журнала. В качестве примера см. Log4j.

 Смежные вопросы

  • Нет связанных вопросов^_^