Використання printf для форматування в Java

Оси мисалдарға қарап лаб.жұмисты орындаңыздар.

public class Test

* Негізгі әдісі басталатин

* ориндау кез-келген Java-бағдарлама.

public static void main (String args[])

System.out.println("Hello, world!");

Використання printf для форматування в Java

Методprintf() належить класуPrintStream, який відповідає за виведення інформації. Вже знайомі нам методиprint() іprintln() також є методами класуPrintStream.

Методprintf визначений таким чином:

printf(String format, Object. args)

Перший аргументformat це рядок, що визначає шаблон, згідно з яким відбуватиметься форматування. Для її запису існують певні правила.

У попередньому прикладі формат був%4d, деd означає виведення десяткового цілого числа, а4 — означає те, що якщо кількість знаків в числі менше, чим 4, то воно буде спереду доповнено пробілами на кількість знаків, що бракує (до 4-х) (тим самим посунуто вправо).

Для наочності наведемо ще один приклад, який виводить стовпчиком кілька чисел.

System.out.printf("%6d%n%6d%n%6d%n%6d%n%6d%n%6d", 666666, 55555, 4444, 333, 22, 1);

На консоль буде виведено:

Тут у рядку форматування ми використовували кілька разів%6d%n, де кожне%6d задає формат для одного з чисел, зазначених далі як аргументи. Перше%6d форматує число666666, друге%6d форматує55555 і т.д.%n означає переклад рядка. Оскільки до всіх числах було застосовано форматування%6d, то числа, які містять менше 6 знаків, посунуті вправо набрак знаків і тим самим красиво вирівняні.

Загальний вигляд інструкції форматування наступний:

  • % — спеціальний символ, що означає початок інструкцій форматування.
  • [flags] — спеціальні символи форматування. Наприклад, прапор "+" означає, що числове значення має містити знак +, прапор "-" означає вирівнювання результату по лівому краю, прапор «,» встановлює роздільник тисяч у цілих чисел. Не обов'язковою частиною інструкції.
  • [width] — позитивне ціле десяткове число, яке визначає мінімальну кількість символів, які будуть виведені. Не обов'язковою частиною інструкції.
  • [.precision] — не негативне ціле десяткове число з точкою перед ним. Зазвичай використовується обмеження кількості символів. Специфіка поведінки залежить від виду перетворення. Не обов'язковою частиною інструкції.
  • conversion — це символ, що вказує, як аргумент має бути відформатовано. Наприклад,d для цілих чисел,s для рядків,f для чисел з плаваючою точкою. Є обов'язковою частиною інструкції.

Усі можливі прапори та перетворення (conversion ) зазначені в офіційній документації. Тут ми не ставимо за мету вивчити їх усі, наша мета — навчитися застосовувати форматування. Тож розглянемо кілька прикладів.

Приклад 2. Розглянемо приклад демонструючий висновок на консольдо знайомства з форматуванням іпісля.

Без форматування

System.out.println("Корінь числа" + i + "рівний" + root);

На консоль буде виведено:

Корінь числа 675 дорівнює 25.98076211353316

У цьому випадку перетворення коду на рядок автоматично генерується компілятором Java. Цей спосібпоганий тим, що при великій кількості змінних і тексту для виведення легко втратити контроль над результатами.

З форматуванням

System.out.printf("Корінь числа %d дорівнює %f", i, root);

Де%d відповідає за виведення значення змінноїi, а%f за виведення значення змінноїroot. При цьому ми не використовуємо конкатенацію.

На консоль буде виведено:

Корінь числа 675 дорівнює 25,980762

Як бачимо, формат автоматично округляє число до 6 знаків після коми. Однак, при форматуванні ми можемо встановлювати таку кількість знаків після коми, яка нам потрібна, наприклад:

System.out.printf("Корінь числа %d дорівнює %.2f", i, root);

Виведе число із двома знаками після коми.

Далі на прикладах розглянемо найпопулярніші правила форматування.